Flask模板引擎Jinja2使用實(shí)例
Flask提供的模板引擎為Jinja2,易于使用,功能強(qiáng)大。
模板僅僅是文本文件,它可以生成任何基于文本的格式(HTML、XML、CSV、LaTex 等等)。
它并沒有特定的擴(kuò)展名, .html 或 .xml 都是可以的。
模板包含 變量 或 表達(dá)式 ,這兩者在模板求值的時候會被替換為值。模板中還有標(biāo)簽,控制模板的邏輯。
Jinja2文檔:http://docs.jinkan.org/docs/jinja2/index.html
下面是一些使用實(shí)例,涉及模板繼續(xù)、變量、賦值、循環(huán)、去空白、轉(zhuǎn)義塊、條件語句等。
1、在目錄templates下面創(chuàng)建基本模板文件base.html
<!doctype html> <html> <head> <title>{{title}}</title> <style text="text/css"> ul{list-style:none} li{padding-left:20px} </style> </head> <body> <div id="content"> <h4>子模板內(nèi)容</h4> {% block content %} {% endblock %} </div> </body> </html>
2、同樣在目錄templates下面創(chuàng)建子模板文件test1.html
{% extends 'base.html' %} {# 這里是注釋,上面標(biāo)簽表示當(dāng)前模板繼承自模板base.html #} {% block content %} 變量:{{v1}} <br /> 賦值: {% set v2 = 100 %} {{v2}} <br /> 循環(huán): {% for item in items%} {{ item.name }} {% endfor %} <br /> 去空白: {% for item in items -%} {{ item.name }} {%- endfor %} <br /> 轉(zhuǎn)義塊: {% raw %} <ul> {% for item in list -%} <li>{{ item }}</li> {%- endfor %} </ul> {% endraw %} 條件語句: {% for item in items%} {% if item.name == '張三' %} {{item.name}}(管理員) {% else %} {{item.name}} {% endif %} {% endfor %} <br /> <form method="post" action="/getFormValue"> <input type="text" name="username" width="60" /> <input type="submit" value="獲取表單值" /> </form> {% endblock %}
3、在與目錄templates平級目錄上創(chuàng)建test1.py
from flask import Flask, render_template, request app = Flask(__name__) @app.route('/test1') def test1() -> 'html': items = [{'name':'張三'}, {'name':'李四'}, {'name':'王五'}] return render_template('test1.html', title='test', v1='變量值', items = items) @app.route('/getFormValue', methods=['POST']) def getFormValue() -> 'str': username = request.form['username'] return username app.run(debug = True)
4、在命令提示符下執(zhí)行py -3 test1.py
訪問http://127.0.0.1:5000/test1,頁面顯示如下:
子模板內(nèi)容
變量:變量值
賦值: 100
循環(huán): 張三 李四 王五
去空白: 張三李四王五
轉(zhuǎn)義塊:
{% for item in list -%}
{{ item }}
{%- endfor %}
條件語句: 張三(管理員) 李四 王五
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
pytorch關(guān)于Tensor的數(shù)據(jù)類型說明
這篇文章主要介紹了pytorch關(guān)于Tensor的數(shù)據(jù)類型說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07Dephi逆向工具Dede導(dǎo)出函數(shù)名MAP導(dǎo)入到IDA中的實(shí)現(xiàn)方法
這篇文章主要介紹了Dephi逆向工具Dede導(dǎo)出函數(shù)名MAP導(dǎo)入到IDA中,通過這個腳本,我們就可以把專業(yè)dephi程序分析的結(jié)果,轉(zhuǎn)移到IDA專業(yè)逆向代碼分析的平臺,實(shí)現(xiàn)聯(lián)動,需要的朋友可以參考下2022-08-08cv2.getStructuringElement()函數(shù)及開、閉、腐蝕、膨脹原理講解
getStructuringElement()函數(shù)可用于構(gòu)造一個特定大小和形狀的結(jié)構(gòu)元素,用于圖像形態(tài)學(xué)處理,這篇文章主要介紹了cv2.getStructuringElement()函數(shù)及開、閉、腐蝕、膨脹原理講解的相關(guān)資料,需要的朋友可以參考下2022-12-12Python實(shí)戰(zhàn)之外星人入侵游戲示例代碼
這篇文章主要介紹了利用Python編寫的外星人入侵游戲的示例代碼,文中的代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定的幫助,感興趣的可以學(xué)習(xí)一下2022-01-01Python?OpenCV中cv2.minAreaRect實(shí)例解析
minAreaRect的主要作用是獲取一個多邊形(就是有很多個點(diǎn)組成的一個圖形)的最小旋轉(zhuǎn)矩形(旋轉(zhuǎn)矩形就是我們平常見到的水平框帶了角度),這篇文章主要給大家介紹了關(guān)于Python?OpenCV中cv2.minAreaRect的相關(guān)資料,需要的朋友可以參考下2022-11-11Python3.9用pip安裝wordcloud庫失敗的解決過程
一般在命令行輸入pip install wordcloud 總會顯示安裝失敗,所以下面這篇文章主要給大家介紹了關(guān)于Python3.9用pip安裝wordcloud庫失敗的解決過程,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06Python并發(fā)請求下限制QPS(每秒查詢率)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Python并發(fā)請求下限制QPS(每秒查詢率)實(shí)現(xiàn)方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06Python生成隨機(jī)數(shù)組的方法小結(jié)
這篇文章主要介紹了Python生成隨機(jī)數(shù)組的方法,結(jié)合實(shí)例形式總結(jié)分析了Python使用random模塊生成隨機(jī)數(shù)與數(shù)組操作相關(guān)技巧,需要的朋友可以參考下2017-04-04Django REST framework 分頁的實(shí)現(xiàn)代碼
這篇文章主要介紹了Django REST framework 分頁的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06