1.版本的使用
- {{}} 來表示變量名,這種 {{}} 語法叫做變量代碼塊{{your_dict[‘key’]}}
- 用 {%%} 定義的控制代碼塊,可以實現一些語言層次的功能,比如循環或者if語句{% if user %} {{ user }} {% else %} hello!
- 使用 {# #} 進行註釋,註釋的內容不會在html中被渲染出來{# {{ name }} #}
2.版本的過濾器
- safe:禁用轉義 --jiaja2模板會自動對html字符進行轉義, 可以設置safe過濾器來取消html轉義
- format:格式化輸出
# 模板: 需要內容替換的靜態頁面
# 模板渲染: 給模板進行內容替換 jinja2 模板渲染框架 本質 正則表達式進行替換
"""
模板渲染:
1> 需要將模板文件放入模板文件夾, 並且要設置對應的模板語言
2> 使用render_template()函數來渲染模板, 將需要替換的內容設置模板變量傳入模板中
3> 使用模板變量來進行內容替換
"""
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
# render_template會讀取網頁中的html內容, 然後返回 替換後的html字符串
keywoord = "北京"
html_str = render_template("baidu.html", kw=keywoord)
return html_str
class User:
type = "vip"
def is_login(self):
return True
@app.route('/demo1')
def demo1():
name = "zs"
age_dict = {"zs": 20, "ls": 30}
height_list = [1.7, 1.8]
user = User() # 自定義對象
return render_template("demo1_template.html", name=name, age_dict=age_dict, height_list=height_list, user=user)
# 過濾器 本質: 函數 1> 必須設置形參來接收模板變量的值 2> 需要將轉換後的內容返回
# @app.template_filter("li_reverse") # 裝飾器形式也可以給應用添加過濾器
def do_list_reverse(value): # value = [1.7, 1.8]
# value.reverse() # 原列表會改變
# return value
return value[::-1]
# 應用添加過濾器
app.add_template_filter(do_list_reverse, "li_reverse")
@app.route('/demo2')
def demo2():
name = "zs"
height_list = [1.7, 1.8]
age_list = [{"name": "zs", "age": 20}, {"name": "ls", "age": 30}]
h1_tag = "<h1>我是標題</h1>"
return render_template("demo2_filter.html", name=name, height_list=height_list, age_list=age_list, h1_tag=h1_tag)
if __name__ == '__main__':
app.run(debug=True)