+ 我要发布
我发布的 我的标签 发现
浏览器扩展
斑点象@Edge

Flask 中的 @app.context_processor 和 @app.app_template_global() 修饰器及如何在 Jinja 模版中使用

使用 @app.context_processor 和 @app.app_template_global() 修饰器的方法,可当做全局上下文变量在所有模板中直接被调用。 @app.context_processor 修饰的方法返回的是一个字典(注意 context_processor 后没有括号)。例如: ``` @app.context_processor def context_user(): user={'name':'Jack','email':'jack@jack.com'} return {'user':user} ``` Jinja 默认中使用: ``` <div>Name: {{user.name}} </div> <div>Email: {{user.email}} </div> ``` @app.context_processor 修饰的方法返回的依然是一个方法,可带参数(注意 app_template_global 后有括号)。例如: ``` @app.app_template_global() def get_email(user_name): return service_get_user_email_by_name(user_name) ``` Jinja 默认中使用: ``` <div>Name: {{user.name}} </div> <div>Email: {{get_email(user.name)}} </div> ```
我的笔记