所有的控制语句都是放在{% … %}中,并且有一个语句{% endxxx %}来进行结束,Jinja中常用的控制语句有if/for…in…
if:if语句和python中的类似,可以使用>,<,<=,>=,==,!=来进行判断,也可以通过and,or,not,()来进行逻辑合并操作
for…in…:for循环可以遍历任何一个序列包括列表、字典、元组。并且可以进行反向遍历
另外,不可以使用continue和break表达式来控制循环的执行。
# @ Time : 2020/4/11 23:41
# @ Author : Ellen
from flask import Flask,render_template
app = Flask(__name__)
app.config["TEMPLATES_AUTO_RELOAD"] = True
@app.route("/")
def index():
context = {
"username": "ellen",
"books": ["Python","Java","PHP"],
"users":{
"name": "ellen",
"age": 19,
"address": "shanghai"
}
}
return render_template("if_for.html",**context)
if __name__ == '__main__':
app.run(debug=True,port=8080)
创建 if_for.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!-- {{ 变量 }} -->
{# {% 函数 if for %} #}
{% if username == "ellen1" %}
<p>{{ username }}</p>
{% else %}
<p>当前的用户名不是ellen...</p>
{% endif %}
{% for book in books %}
<p>{{loop.index}}</p>
<p>{{ book }}</p>
{% endfor %}
{% for user in users %}
<p>{{ user }}</p>
{% endfor %}
{% for key,value in users.items() %}
<p>{{ key }}</p>
<p>{{ value }}</p>
{% endfor %}
<hr>
{% for key in users.keys() %}
<p>{{ key }}</p>
{% endfor %}
<hr>
{% for value in users.values() %}
<p>{{ loop.first }}</p>
<p>{{ value }}</p>
{% endfor %}
</body>
</html>