一:语法

二:if条件控制



app.py
from flask import Flask,render_template,render_template_string,g,url_for
app = Flask(__name__)
@app.route('/tag')
def tag():
""" 模板标签的使用 """
var = 1
return render_template("tag.html",var = var)
if __name__ == '__main__':
app.run(debug=True)
tag.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>模板标签的使用</title>
</head>
<body>
<h3> if的使用</h3>
{% if var is none %}
<p>var 是 none</p>
{% else %}
<p> var 不是 none</p>
{% endif %}
{% if a is defined %}
<p>a定义了</p>
{% else %}
<p>a没被定义</p>
{% endif %}
</body>
</html>
三:for循环
3-1:demo1



app.py
from flask import Flask,render_template,render_template_string,g,url_for
app = Flask(__name__)
@app.route('/tag')
def tag():
""" 模板标签的使用 """
var = 1
list_user = [
{
'username': '张三',
'age':'32',
'address': {
'city': '广州',
}
},
{
'username': '李四',
'age':'23'
}
]
return render_template("tag.html",var = var,list_user=list_user)
if __name__ == '__main__':
app.run(debug=True)
tag.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>模板标签的使用</title>
</head>
<body>
<h3> if的使用</h3>
{% if var is none %}
<p>var 是 none</p>
{% else %}
<p> var 不是 none</p>
{% endif %}
{% if a is defined %}
<p>a定义了</p>
{% else %}
<p>a没被定义</p>
{% endif %}
<h3>for循环的使用</h3>
{% for item in list_user%}
<p>用户名:{{ item.username }},年龄:{{ item.age }}</p>
{% else %}
<p>用户信息为空</p>
{% endfor %}
<h3>for 循环 dict</h3>
{% for user in list_user%}
<p>
{% for key,value in user.items() %}
{{ key }}:{{ value }}
{% endfor %}
</p>
{% else %}
<p>用户信息为空</p>
{% endfor %}
</body>
</html>
3-2:循环的扩展,continue/break
app.py
from flask import Flask,render_template,render_template_string,g,url_for
app = Flask(__name__)
# 为模板引擎添加扩展,支持break/continue语法
app.jinja_env.add_extension('jinja2.ext.loopcontrols')
@app.route('/tag')
def tag():
""" 模板标签的使用 """
var = 1
list_user = [
{
'username': '张三',
'age':'32',
'address': '广州',
},
{
'username': '李四',
'age':'23'
},
{
'username': '王五',
'age': '32',
'address': '广州',
},
{
'username': '王二',
'age': '23'
}
]
return render_template("tag.html",var = var,list_user=list_user)
if __name__ == '__main__':
app.run(debug=True)
tag.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>模板标签的使用</title>
<style type = "text/css">
.odd{
background-color: #f00;
color: #fff;
}
.even{
background-color: aqua;
color: #fff;
}
</style>
</head>
<body>
<h3> if的使用</h3>
{% if var is none %}
<p>var 是 none</p>
{% else %}
<p> var 不是 none</p>
{% endif %}
{% if a is defined %}
<p>a定义了</p>
{% else %}
<p>a没被定义</p>
{% endif %}
<h3>for循环的使用</h3>
{% for item in list_user%}
<p>用户名:{{ item.username }},年龄:{{ item.age }}</p>
{% else %}
<p>用户信息为空</p>
{% endfor %}
<h3 >for 循环 dict</h3>
{% for user in list_user%}
<p class = "{{ loop.cycle('odd','even') }}">
第{{ loop.index }}个用户,总共{{ loop.length}}个用户<br/>
{% for key,value in user.items() %}
{{ key }}:{{ value }}
{% endfor %}
</p>
{% else %}
<p>用户信息为空</p>
{% endfor %}
<h3 >for 循环 dict-break</h3>
{% for user in list_user%}
<p class = "{{ loop.cycle('odd','even') }}">
第{{ loop.index }}个用户,总共{{ loop.length}}个用户<br/>
{% for key,value in user.items() %}
里面{{ loop.index }}
{% if loop.index>2 %}
{% break %}
{% endif %}
{{ key }}:{{ value }}
{% endfor %}
<br/>
</p>
{% else %}
<p>用户信息为空</p>
{% endfor %}
</body>
</html>

3-3:设置变量,赋值操作,使用with代码块,实现块级作用域

tag.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>模板标签的使用</title>
<style type = "text/css">
.odd{
background-color: #f00;
color: #fff;
}
.even{
background-color: aqua;
color: #fff;
}
</style>
</head>
<body>
<h3> if的使用</h3>
{% if var is none %}
<p>var 是 none</p>
{% else %}
<p> var 不是 none</p>
{% endif %}
{% if a is defined %}
<p>a定义了</p>
{% else %}
<p>a没被定义</p>
{% endif %}
<h3>for循环的使用</h3>
{% for item in list_user%}
<p>用户名:{{ item.username }},年龄:{{ item.age }}</p>
{% else %}
<p>用户信息为空</p>
{% endfor %}
<h3 >for 循环 dict</h3>
{% for user in list_user%}
<p class = "{{ loop.cycle('odd','even') }}">
第{{ loop.index }}个用户,总共{{ loop.length}}个用户<br/>
{% for key,value in user.items() %}
{{ key }}:{{ value }}
{% endfor %}
</p>
{% else %}
<p>用户信息为空</p>
{% endfor %}
<h3 >for 循环 dict-break</h3>
{% for user in list_user -%}
<p class = "{{ loop.cycle('odd','even') }}">
第{{ loop.index }}个用户,总共{{ loop.length}}个用户<br/>
{% for key,value in user.items() -%}
里面{{ loop.index }}<br/>
{% if loop.index>2 %}
{% break %}
{% endif %}
{{ key }}:{{ value }}
{% endfor -%}
</p>
{% else %}
<p>用户信息为空</p>
{% endfor %}
<h3>赋值的使用</h3>
{% with %}
{% set temp = 43%}
{{ temp }}
{% endwith %}
</body>
</html>

3-4:转义显示--raw标签

网友评论