Flask模板的全局对象: 全局对象是指在所有的模板中都可以直接使用的对象,包括在模板中导入的模板.
内置全局函数
- Jinja2内置全局函数
1. range([start,]stop[,step]) -- 和python中的range()用法一样
2. lipsum(n=5,html=True,min=20,max=100) -- 生成随机文本,可以在测试时用来填充页面,默认生成5段HTML文本,每段包含20~100个单词
3. dict(**items) -- 和python的dict()用法相同
- Flask在模板中内置了两个内置函数
1. url_for() -- 用于反向解析,生成url
2. get_flashed_messages() -- 用于获取flash消息
自定义全局函数
- 除了使用app.context_processor注册模板上下文处理函数来传入函数,我们也可以使用app.template_global装饰器直接将函数注册为模板全局函数.
@app.template_global(name) -- name 表示传入给模板的函数名
def bar():
return "register a global variable of template"
也可以直接使用app.add_template_global(function, name)传入函数对象和自定义名称注册自定义模板函数,