jinja2在模板里支持if条件语句,这意味着你可以更加灵活的控制页面的显示,同正常python代码一样,它支持elif和else。
对上一篇的实例做一些简单的修改,新建一个if.html文件,内容为
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% if name=='管理员' %}
<p>原来你是管理员啊</p>
{% else %}
<p>欢迎你 {{ name }}</p>
{% endif %}
</body>
</html>
在app.py文件里新增加一个视图函数
@app.route('/if/<string:name>', methods=['GET'])
def test_if(name):
return render_template('if.html', name=name)
启动服务后,在浏览器里输入 http://127.0.0.1:5000/if/小明
页面里会显示
欢迎你 小明
但如果你在浏览器里输入 http://127.0.0.1:5000/if/管理员
页面里则会显示
原来你是管理员啊
如果只是有一个值需要动态替换,那么你需要使用 {{ ... }}
这种语法,但如果你希望对程序更精细的控制,需要用到条件语句,for循环,则必须使用{% ... %}
使用if条件语句语句时,下面三个语句块一个都不能少
{% if name=='管理员' %}
do something
{% else %}
do something
{% endif %}
尤其是最后的{% endif %},很容易被遗忘
如果两个条件分支无法满足业务需求,你也可以使用 {% elif %} 增加逻辑判断
QQ交流群: 211426309