page contents

什么情况下需要自定义context_processors(上下文处理器)?

轩辕小不懂 发布于 2022-07-06 14:31
阅读 511
收藏 0
分类:框架系列
3869
Nen
Nen
- 程序员

当你需要一个视图函数或模板提供或设置全局变量时,你需要使用context_processors(上下文处理器)。我们在视图和模板中可以随意使用request这个对象作为变量,不需要额外传递,就是因为django.core.context_processors.request把request变成了一个全局变量。

context_processors(上下文处理器)在很多场景下非常有用,举个实际点的例子。一个博客的每篇文章详情上都会有标签云,文章归档,友情链接等信息,这些信息每篇文章都是可以公用的信息。如果每一篇文章的DetailView都从数据库查询相关数据再返回给前端模板,这就造成了数据库查询的浪费,增加了服务器的负担。如果把这些数据通过context_processors设置成全局变量,那么所有的视图和模板都能够直接访问不需要再重复查询数据库了,是不是很帅?

请先 登录 后评论