flask context_processor

context_processor


1. context_processor(上下文处理器钩子函数)

  • 上下文处理器应该返回一个字典,字典中的key会被模板中当成变量来渲染
  • 被这个装饰器修饰的钩子函数,必须要返回一个字典,即使为空也要返回。
  
@app.context_processor  
def my_context_processor():  
    return {'username':'test'}  

1.1. 原理

  
    @setupmethod  
    def context_processor(self, f):  
        """Registers a template context processor function."""  
        self.template_context_processors[None].append(f)  
        return f  

释义:
装饰器把方法my_context_processor添加到self.template_context_processors = {None: [_default_template_ctx_processor]}

这些方法会在每次渲染模板(render_template)时执行,最终效果就是可以在模板中可以访问它所定义的dict。

1.2. 其它

蓝图也有类似方法

bp.context_processor # 仅对当前蓝图的模板渲染生效
bp.app_context_processor # 对所有的模板生效,等效于@app.context_processor

  
@main.app_context_processor  
def global_datas():  
    return dict()  
posted @ 2020-07-07 21:15  木林森__𣛧  阅读(454)  评论(0)    收藏  举报