Jinja2模板中所有控制语句都放在{% ... %}中,并且以{% endxxx %}来进行结束,Jinja中常用的控制语句有if/for..in..。
控制语句:ifif:if语句和python中的类似,可以使用>, 25 %} 您已经超过25岁了! {% elif age < 25 %} 您的年龄小于25岁! {% else %} 您的年龄今年25岁了! {% endif %}
运行结果:
for...in...:for循环可以遍历任何一个序列包括列表、字典、元组。并且可以进行反向遍历。
列表遍历:main.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
name_list = ['张三', '李四', '王五']
return render_template('index.html', name_list=name_list)
if __name__ == '__main__':
app.run()
index.html
首页
欢迎来到首页!
{% for name in name_list %}
- {{ name }}
{% endfor %}
运行结果:
main.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
name_dict = {
'name1': '张三',
'name2': '李四',
'name3': '王五'
}
return render_template('index.html', name_dict=name_dict)
if __name__ == '__main__':
app.run()
index.html
首页
欢迎来到首页!
{% for key, value in name_dict.items() %}
- {{ key }}:{{ value }}
{% endfor %}
运行结果:
main.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
name_dict = {
}
return render_template('index.html', name_dict=name_dict)
if __name__ == '__main__':
app.run()
index.html
首页
欢迎来到首页!
{% for key, value in name_dict.items() %}
- {{ key }}:{{ value }}
{% else %}
- Not found!
{% endfor %}
运行结果:
Jinja中的for循环还包含以下变量,可以用来获取当前的遍历状态:
变量描述loop.index当前迭代的索引(从1开始)loop.index0当前迭代的索引(从0开始)loop.first是否是第一次迭代,返回True或Falseloop.last是否是最后一次迭代,返回True或Falseloop.length序列的长度注意:不可以使用continue和break表达式来控制循环的执行。