Flask Context Processors


我学习flask是跟着Miguel Grinberg的《Flask Web Development》上手的、书上都是选了一些更为方便实用的扩展包进行开发的,跟着书中的项目做下来,能有了一个比较好的flask架构方案,但对很多flask的机制还是很模糊。最近自己在写一个小项目,遇到许多坑,于是开始边看官方文档边继续写,以后也会记录一些个人觉得比较好,比较有用的知识点。

今天发现了一个很有用的装饰器 context_processor,刚好解决了小项目中困扰我的一个问题。主要有两个作用:

  • 可以向模板上下文中自动注入变量,在模板中调用:
@app.context_processor 
def inject_user():
      return dict(user=g.user)

注意:返回值必须是一个dictionary
虽然这个例子的确没啥实际意义(g 本来就可以在模板中直接调用),但做例子说明这点作用还是可以的

  • 不但可以注入变量,还可以直接注入方法:
@app.context_processor 
def utility_processor():
       def format_price(amount, currency=u  ):
              return u {0:.2f}{1} .format(amount, currency)
       return dict(format_price=format_price)

在模板中的调用方法:{{ format_price(0.33) }}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,310评论 22 257
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,133评论 19 139
  • 第三章 模板 序 为什么要分离 易于维护的代码,关键在于保持简单的结构。而我们之前编写的hello.py虽然简单,...
    科幻经典阅读 5,434评论 0 6
  • 今天早上发生了不愉快的事。 小宝早上五点十分醒了,我把他抱到奶奶那,想回房接着睡。大宝六点醒了,平时他醒了就不愿意...
    church_的夏天阅读 1,589评论 0 0
  • 2017-11-11 17:59 · 字数 158 · 阅读 3 · 随笔 Life likes a w...
    Boryan阅读 2,972评论 0 2

友情链接更多精彩内容