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:
$:nomeEscapando 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.

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…
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….
R2 http://whp1o4.AACEHARDWARE.INFO/tag/R2.ee+R2+buy/ : buy…
buy…
Gazelle http://jpacificarjmngs.AUTOPARTSTHAI.INFO/tag/little\x27s+trainer+review+littlex27s+Gazelle/ : Gazelle…
little\x27s…