Web框架——Flask系列之Jinja2模板引擎(二)
Jinja2模板引擎簡介
一、Jinja2模板概述
用來展示數(shù)據(jù)的html頁面,這個(gè)過程也通常稱為渲染,屬于Jinja2的功能 使用模板的好處:
二、Jinja2特點(diǎn)
Jinja2:是 Python 下一個(gè)被廣泛應(yīng)用的模板引擎,是由Python實(shí)現(xiàn)的模板語言,他的設(shè)計(jì)思想來源于 Django 的模板引擎,并擴(kuò)展了其語法和一系列強(qiáng)大的功能,其是Flask內(nèi)置的模板語言。
模板語言:是一種被設(shè)計(jì)來自動(dòng)生成文檔的簡單文本格式,在模板語言中,一般都會把一些變量傳給模板,替換模板的特定位置上預(yù)先定義好的占位變量名。
使用render_template函數(shù)封裝模板引擎
三、Jinja2模板的使用
3.1 Jinja2模板語法:
分支語句if
{ % if 條件 % }
語句1
{ % else % }
語句2
{ % endif % }
for循環(huán)
{% for 變量 in 容器 %}
語句
{% endfor%}
注釋
{# 注釋內(nèi)容 #}
3.2代碼展示:
使用函數(shù): render_template(‘模板文件名’,key=value)
將數(shù)據(jù)攜帶到,文件中進(jìn)行展示
創(chuàng)建文件demo01.py,代碼如下:
在templates文件夾下,創(chuàng)建文件file01.html文件,代碼如下:
<h2>1.獲取各種變量的值</h2><h3>整數(shù): {{ my_num + 20}}</h3><h3>字符串: {{ my_str + " python" }}</h3><h3>元組: {{ my_tuple }}, 分開獲取:{{ my_tuple[0] }}, {{ my_tuple[1] }}</h3><h3>列表: {{ my_list }}, 分開獲取:{{ my_list[0] }}, {{ my_list[1] }}</h3><h3>字典: {{ my_dict }},分開獲取:{{ my_dict.name }}, {{ my_dict[age] }}</h3><h2>2.遍歷元祖中所有的元素</h2>{% for item in my_tuple %}<li>{{ item }}</li>{% endfor %}<h2>3.取出列表中所有偶數(shù)</h2>{% for item in my_list %}{% if item %2 == 0 %}{{ item }}{% endif %}{% endfor %}<h2>4.遍歷字典內(nèi)容</h2>{% for key in my_dict %}{# 如果直接是mydict.key ,那么這個(gè)key是一個(gè)字符串, 如果是 mydict[key], 那么key當(dāng)成變量 #}<li>{{ key }} = {{ my_dict[key] }}</li>{% endfor %}11_templates.py文件:
from flask import Flask,render_templateapp = Flask(__name__)@app.route("/index",methods=["GET","POST"]) def index():data = {"name":"python","age" : 18}# return render_template("index.html",name="python",age=18)# **data將字典進(jìn)行解析return render_template("index.html", **data)if __name__ == '__main__':app.run(debug=True)index.html文件:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body><p>naem = {{name}}</p><p>age = {{age}}</p> </body> </html> from flask import Flask,render_template app = Flask(__name__)@app.route("/index",methods=["GET","POST"]) def index():data = {"name":"python","age" : 18,"my_dict": {"city":"sz"},"my_list": [1,2,3,4,5],"my_int": 0}# return render_template("index.html",name="python",age=18)# **data將字典進(jìn)行解析return render_template("index.html", **data)if __name__ == '__main__':app.run(debug=True) <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body><p>name = {{name}}</p><p>age = {{age}}</p><p>my_dict:city = {{my_dict["city"]}}</p><p>my_dict:city = {{my_dict.city}}</p><p>my_list[my_int]:{{my_list[my_int]}}</p><p>my_list[0] + my_list[1] = {{my_list[0] + my_list[1]}}</p><p>{{"hello" + " python!" }}</p></body> </html>3.3 擴(kuò)展:
在一個(gè) for 循環(huán)塊中你可以訪問這些特殊的變量:
總結(jié)
以上是生活随笔為你收集整理的Web框架——Flask系列之Jinja2模板引擎(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python网络爬虫系列(二)——Pro
- 下一篇: 九、MySQL常见约束相关知识总结 学习