Flask模板簡介
.模板 - Templates
1.什麼是模板
模板:在Falsk中就是允許響應給使用者看的網頁
在模板中,允許包含"佔位變數"來表示動態的內容
模板中最終也會被解析成字串再響應給客戶端,這一過程稱之為"渲染"
falsk中模板是依賴於Jinja2的模板系統
2.模板的位置
預設情況下.Flask會在程式資料夾中templates的子資料夾中搜索模板
預設情況下,需要手動建立templates資料夾
3.模板的渲染
在檢視中將模板檔案(xx.html)渲染成字串之後,再響應給客戶端瀏覽器
函式:rendet_template("xxx.html")
return rendet_template("xxx.html")
4.模板中的語法(重難點)
.1變數:
變數是一種特殊的佔位符,告訴模板引擎該為位置的值是從渲染模板時的資料中提取出來的
在檢視中:
@app.route("/")
def index():
return render("xxx.html",變數1 = 值1,變數2 = 值2,...)
return
rendef_template('xxx.html',name = "laowang";age = 35)
在模板中:
{{變數名}}
<h1>{{name}}</h1>
2.過濾器
1.什麼是過濾器
過濾器是允許變數輸出前改變變數的值
2.語法:
{{變數|過濾器}}
jinja2模板中常見過濾器
過濾器名 說明
capitalize 首字元變大寫,其他變小寫
lower 將值轉換為小寫
upper 將值轉換為大寫
title 將值中的每個單詞首字母變大寫
trim 去掉值兩邊的空格
3.標籤
1.什麼是標籤
每個標籤表示的是不同的伺服器端的功能
2.常用的標籤
1.if標籤
1.基本if結構
{% if 條件 %}
{% endif %}
2.if...else...結構
{%if 條件%}
滿足條件時要執行的程式碼
{% else %}
不滿足條件時要執行的程式碼
{% endif %}
3.if ... elif ... else
{% if 條件1 %}
滿足條件1要執行的程式碼
{% elif 條件2 %}
滿足條件2要執行的程式碼
{% elif 條件3 %}
滿足條件3要執行的程式碼
{% else %}
以上條件都不滿足要執行的程式碼
{% endif %}
2.for 標籤
{% for 變數 in 元組|列表|字典 %}
{% endfor %}
在jinja2模板中的迴圈中,支援內部變數 -loop
loop作用:記載當前迴圈中的一些相關資訊
loop常用屬性:
1.index
用法:loop.index
作用:記錄當前迴圈的次數,從1開始記錄
2.index 0
用法:loop.index0
作用:同上,從0開始記
3.first
用法:loop.first
作用:值為TURE,則表示當前迴圈時第一次迴圈
4.last:
用法:loop.last
作用:值為True,則表示當前迴圈是最後一次迴圈
3.macro標籤(巨集)
1.作用:
相當於在模板中宣告函式
2.語法:
使用{% macro%} 宣告巨集
{% macro 名稱(引數列表) %}
xxxx xxxx
{% endmacro %}
3.在獨立的檔案中去宣告巨集
1.建立macro.html模板檔案
作用:定義專案中要用到的所有的巨集
2.在使用的網頁中,匯入macro.html
{% import "macro.html" as macros %}
4.include 標籤
將其它的模板檔案包含到當前的模板檔案中
語法:{% include "xxx.html"%}