Web.py: o sistema de templates

Posted by Gabriel Verta | Posted in Python, web.py | Posted on 12-02-2010-05-2008

8

Após a apresentação do framework web.py, vamos ver como funciona o template engine do web.py.

Vamos começar criando os arquivos. Crie um arquivo chamado segundo.py, e ao lado uma pasta chamada templates.

Exemplo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import web
 
urls = (
    '/', 'Segundo'
)
 
app = web.application(urls, globals())
 
render = web.template.render('templates')
 
class Segundo(object):
    def GET(self):
        return render.segundo('Gabriel Verta')
 
if __name__ == '__main__':
    app.run()

Vamos descrever as novidades em relação ao exemplo da apresentação do framework:

9
render = web.template.render('templates')

Aciona o template engine para a pasta de nome templates, criada anteriormente.

13
return render.segundo('Gabriel Verta')

Indica que o retorno da chamada via GET será a renderização do template segundo.html, passando como parâmetro para o template a string ‘Gabriel Verta’.

Vamos então criar o arquivo segundo.html dentro da pasta templates.

1
2
3
4
5
6
7
8
9
$def with (nome)
<html>
    <head>
        <title>$nome</title>
    </head>
    <body>
        <h1>Olá, $nome</h1>
    </body>
</html>

A explicação:

1
$def with (nome)

Indica que o template irá receber uma variável, e que está dentro do template poderá ser utilizada como nome.

4
        <title>$nome</title>

Exibe o valor da variável nome, assim como na linha 7.

Rodando o arquivo segundo.py, e acessando http://localhost:8080/ veremos a mensagem: “Olá, Gabriel Verta”, além de a página ter o título “Gabriel Verta”.

Funcionalidades


Para exibição das variáveis na tela poderemos utilizar as seguintes sintaxes:

$string. 
Uma expressão ${valor1 + valor2}. 
Uma chave de dicionário $dicionario[chave]. 
$(limit)ando uma variável

Caracteres escapados

Caso uma variável string tenha o seguinte conteúdo a ser apresentado ao usuário: “20 > 10″, quando passamos esta string como parâmetro para o template ao exibi-lá ela será trocada por “20 > 10″. Para evitar que isto aconteça utilize a seguinte sintaxe:

$:nome

Escapando o cifrão ($)

$$

Estruturas de controle

1
2
3
4
5
6
7
8
9
10
11
12
$for i in range(10): 
    Contando: $i
 
$for i in range(10): Contando $i
 
$while posts:
    Exibe $posts.pop()
 
$if variavel1 > variavel2: 
    Eu já sabia que 20 era maior que 10
$else: 
    Como assim 20 não é maior que 10?

Repare na linha 2 que é necessário a tabulação, assim como nos scripts python, nos templates.

Nos próximos posts iremos ver estas demais funcionalidades em ação. ;)

Comments posted (8)

xofuvasifir…

Lar Park-Lincoln

etycolanyz…

Pamela Sue Martin

ribaqozox…

Tara Strong

PillSpot.org. Canadian Health&Care.No prescription online pharmacy.Special Internet Prices.Pillspot.org. Vitamins@buy.online” rel=”nofollow”>.…

Categories: Weight Loss.Stomach.Antidepressants.Eye Care.Antiviral.Mental HealthStop SmokingVitamins/Herbal Supplements.Skin Care.Anxiety/Sleep Aid.Pain Relief.Anti-allergic/Asthma.Blood Pressure/Heart.Antidiabetic.Womens Health.Mens Health.Antibi…

Pillspot.org. Canadian Health&Care.No prescription online pharmacy.Special Internet Prices.PillSpot.org. Herbal-supplements@buy.online” rel=”nofollow”>.…

Categories: Vitamins/Herbal Supplements.Womens Health.Pain Relief.Antibiotics.Mental HealthWeight Loss.Mens Health.Stomach.Anti-allergic/Asthma.Stop SmokingBlood Pressure/Heart.Antidepressants.Skin Care.Antiviral.Eye Care.Antidiabetic.Anxiety/Slee…


PillSpot.org. Canadian Health&Care.Best quality drugs.Special Internet Prices.No prescription online pharmacy. Online Pharmacy. Order drugs online

Buy:Prozac.Buspar.Lasix.Lipitor.Nymphomax.Acomplia.Aricept.Female Pink Viagra.Seroquel.Advair.Cozaar.Zetia.Ventolin.Zocor.SleepWell.Amoxicillin.Lipothin.Wellbutrin SR.Benicar.Female Cialis….

Gazelle http://jpacificarjmngs.AUTOPARTSTHAI.INFO/tag/little\x27s+trainer+review+littlex27s+Gazelle/ : Gazelle…

little\x27s…

Write a comment

Spam protection by WP Captcha-Free