1、if需要和endif配合使用
逻辑判断都需要使用{%%},表面该处需要逻辑判断,处理数据或者决策。例如使用1和非1判断是不是已经登陆:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
{% if context %}
<p>My name is {{ context.myname }}</p>
<p>The word is {{ context.myword }}</p>
{% else %}
<p>You shuld try to login first!</p>
{% endif %}
</body>
</html>
使用1和非1的url判断是否登陆
#-*- coding:utf-8 -*-
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/<is_login>/")
def index(is_login):
if is_login == "1":
context = {
"myname":"GYZB",
"myword":"I Love Flask !"
}
return render_template("index.html", context = context )
else:
return render_template("index.html" )
if __name__ == "__main__":
app.run()
分别修改网页的url后的结果是:
2、for需要和endfor配合使用,而且遍历字典的方法与python相同
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
{% for k ,v in context.items() %}
<p>{{k}} : {{ v }}</p>
{% endfor %}
</body>
</html>
使用键值对的方法便利字典
#-*- coding:utf-8 -*-
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
context = {
"myname":"GYZB",
"myword":"I Love Flask !"
}
for k, v in context.items():
print k
print v
return render_template("index.html", context = context )
if __name__ == "__main__":
app.run()
刷新网页后的结果:
3、default过滤器使用默认图片
只需要在需要添加默认图片的地方添加default('params')即可
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<img src="{{ avatar | default('https://t10.baidu.com/it/u=117477135,2585868423&fm=76') }}">
</body>
</html>
这样就可以不用修改python的文件:
#-*- coding:utf-8 -*-
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
if __name__ == "__main__":
app.run(debug=True)
刷新网页后的结果是:
过滤器有很多如length,last,join等等。