一、jinja2模板语言:
- 1、{{ … }}:装载一个变量,模板渲染的时候,会使用传进来的同名参数这个变量代表的值替换掉。
- 2、{% … %}:装载一个控制语句,每个控制语句末尾都需要对应的end控制语句,控制变量包在控制语句和end控制语句之间。
- 3、{# … #}:装载一个注释,模板渲染的时候会忽视这中间的值。
1、if语句:
{% if newlist %}
{{newlist}}
{{ elif list1}}
{{list1}}
{% else %}
{{list2}}
{% endif %}
2、for语句:
{% for i in list1 %}<br>
{{i}}
{% endfor %}
二、实例代码演示:
1、调用模板:
from flask import *
app = Flask(__name__)
@app.route('/')
def index():
return render_template('if1.txt', user = 'bill', intValue = 77, list = [1, 2, 3], dict = {'a': 'b'}, value=None)
"""
列表或字典,None或空,被认为是Flase,否则是True。
"""
if __name__=='__main__':
app.run()
2、模板内容if.txt文件:
<html>
<head>
<meta charset='UTF-8'>
<title>条件控制</title>
</head>
<body>
{% if user %}
hello, {{user}}!
{% else %}
hello Stranger!
{% endif %}
<p>
{% if not intValue %}
intValue的值为0
{% elif (intValue > 10) and (intValue < 20) %}
intValue的值在10和20之间
{% elif intValue > 100 %}
intValue的值大于100
{% else %}
intValue为其他值
{% endif %}
{% if list %}
{% for i in list %}
<h1>列表:{{i}}</h1>
{% endfor %}
{% endif %}
</body>
</html>
执行结果如下图: