模板,就是认为创建的一套用来管理数据的规则.其实从编程的角度来说,我们所使用的编程语言也可以理解成为一种模板的语言,而对应的编程语言文件就是模板文件,如cpp,py,cs文件等等.最近我们做项目,用word做了一套模板,也是类似.既然类似编程语言,那么模板中最重要的两个部分应该就是变量和控制逻辑,上一文介绍了Jinja2模板中的变量,下面介绍下模板中的控制结构。
{% if condition %}
...
{% else %}
...
{% endif %}
if.html:
{% if user %}
Hello {{user}}
{% else %}
Hello Stranger
{% endif %}
test.py:
@app.route('/if')
def if():
return render_template('if.html',user='liuzhihui')
for.html:
{% for comment in comments %}
- {{ comment}}
{% endfor %}
test.py:
@app.route('/')
def index():
comments=['nihao','123','asd','zxc']
return render_template('test.html',comments=comments)
模板中支持宏替换,宏的定义格式如下:
{% macro render_comment(comment) %}
{{ comment }}
{% endmacro %}
使用宏方法如下:
{% for comment in comments %}
{{ render_comment(comment) }}
{% endfor %}
{% import 'macro.html' as macros %}
{% for comment in comments %}
{{ macros.render_comment(comment) }}
{% endfor %}
Github位置:
https://github.com/HymanLiuTS/flaskTs