Kev*_*rke 19 python templates jinja2
我有五页具有相同的页面布局和结构,但有一些不同的颜色,文本等,所以这是一个理想的模板环境.我决定使用Jinja2,可能还有烧瓶.我已经阅读了文档和一些在线教程,这些教程解释了很多关于你可以在页面上使用模板做什么,但没有太多关于如何将变量发送到页面的内容.
nos*_*klo 48
这是基本用法:
首先创建一个模板
>>> from jinja2 import Template
>>> template = Template('Hello {{ name }}!')
Run Code Online (Sandbox Code Playgroud)
然后渲染它传递变量
>>> template.render(name='John Doe')
u'Hello John Doe!'
Run Code Online (Sandbox Code Playgroud)
通常,您需要从文件而不是代码加载模板.这更有效和优化,并允许模板继承:
from jinja2 import Environment, PackageLoader
env = Environment(loader=PackageLoader('yourapplication', 'templates'))
Run Code Online (Sandbox Code Playgroud)
这将templates在yourapplicationPython包的文件夹中查找模板,如Python路径中所安装的那样.您也可以使用其他加载器从特定文件系统或其他位置加载.
然后你可以加载一个模板:
template = env.get_template('mytemplate.html')
print template.render(the='variables', go='here')
Run Code Online (Sandbox Code Playgroud)
使用Flask时,它都是为您配置的,因此您只需使用Flask的render_template功能,它就会查找templates应用程序的子文件夹:
from flask import render_template
@app.route('/hello/')
def hello(name=None):
return render_template('hello.html', name=name)
Run Code Online (Sandbox Code Playgroud)
注意传递给的模板变量(也称为上下文)render_template
Jinja有很好的文档.请阅读.随意提出进一步的问题.