Flask模板之全局对象

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)传入函数对象和自定义名称注册自定义模板函数,

你可能感兴趣的:(Flask模板之全局对象)