Flask模板的全局對象: 全局對象是指在所有的模板中都可以直接使用的對象,包括在模板中導(dǎo)入的模板.
內(nèi)置全局函數(shù)
- Jinja2內(nèi)置全局函數(shù)
1. range([start,]stop[,step]) -- 和python中的range()用法一樣
2. lipsum(n=5,html=True,min=20,max=100) -- 生成隨機(jī)文本,可以在測試時用來填充頁面,默認(rèn)生成5段HTML文本,每段包含20~100個單詞
3. dict(**items) -- 和python的dict()用法相同
- Flask在模板中內(nèi)置了兩個內(nèi)置函數(shù)
1. url_for() -- 用于反向解析,生成url
2. get_flashed_messages() -- 用于獲取flash消息
自定義全局函數(shù)
- 除了使用app.context_processor注冊模板上下文處理函數(shù)來傳入函數(shù),我們也可以使用app.template_global裝飾器直接將函數(shù)注冊為模板全局函數(shù).
@app.template_global(name) -- name 表示傳入給模板的函數(shù)名
def bar():
return "register a global variable of template"
也可以直接使用app.add_template_global(function, name)傳入函數(shù)對象和自定義名稱注冊自定義模板函數(shù),