Flask学习(二)——Jinja2模板引擎
原创
©著作权归作者所有:来自51CTO博客作者亓官劼_的原创作品,请联系作者获取转载授权,否则将追究法律责任
Jinja2模板引擎
动态网页,可能有部分内容数据是需要计算出来的,是动态的内容
在函数中传递参数,在HTML页面中,利用{{}}获取传递的参数
app.py
from flask import Flask,render_template
app = Flask(__name__)
@app.route('/user', methods=['GET', 'POST'])
def user():
user_var="程序设计类辅助实验教学平台"
return render_template('demo3.html', html_var=user_var)
if __name__ == '__main__':
app.run()
demo3.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>This is a Demo3 Page</h1>
<h2>It is only using for test</h2>
这是传输过来的变量:{{ html_var }}
</body>
</html>
显示效果:
在模板中使用{# This is a annotation #}进行注释
传参时,列表和字典的使用:
app.py
from flask import Flask,render_template
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def user():
user_var="程序设计类辅助实验教学平台"
list_test=['这是list的1','这是list的2','这是list的3','这是list的4','这是list的5']
dict_test={
'name': "这是测试name",
'key': "这是测试key"
}
return render_template('demo3.html', html_var=user_var,list_test=list_test,dict_test=dict_test)
if __name__ == '__main__':
app.run()
demo3.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>This is a Demo3 Page</h1>
<h2>It is only using for test</h2>
这是传输过来的变量:{{ html_var }}<br>
<h2>列表使用:</h2>
{{ list_test }}<br>
{{ list_test.1 }}<br>
{{ list_test[2] }}<br>
<h2>dict使用:</h2>
{{ dict_test }}<br>
{{ dict_test.name }}<br>
{{ dict_test['key']}}<br>
</body>
</html>
页面效果:
控制语句
在{% %}中进行写控制语句
{% for num in list_test %}
{% if num > 2 %}
{{ num }}<br>
{% endfor %}
过滤器的基本使用
常见的过滤器
过滤器名
| 说明
|
safe
| 渲染时不转义
|
capitalize
| 把值的首字母大写,其余小写
|
lower
| 把值转换成小写形式
|
upper
| 把值转换成大写形式
|
title
| 把值中每个单词的首字母都转换成大写
|
trim
| 把值的首位空格去掉
|
striptags
| 渲染之前把值中所有的HTML标签删掉
|