django_上下文管理器

Posted mhmh007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django_上下文管理器相关的知识,希望对你有一定的参考价值。

在views中的重复代码可以在上下文管理器中实现

实现的逻辑是 首先请求过来先走url指定的函数也就是views中的函数,然后在去走我们指定的上下文管理器中的逻辑 ,最后渲染到页面中 如下:

我们在工程的user目录下新建一个.py文件(process_content.py)然后将实现的逻辑写在这个文件下 ,实现完逻辑需要在settings-templates-options中导入一下

技术图片技术图片技术图片

 

总结:

使用场景:模板继承可以减少页面内容的重复定义,实现页面内容的重用。个人博客右侧的导航栏都是继承base页面从而让代码得到最大程度的复用。但是当父模板中有动态数据的话,这些动态数据在子模版中是不会显示的。我们可以通过自定义上下文处理器来解决。

结构:上下文管理器文件名一般为context_processors.py,def  xx(request) 为一个自定义函数,必要参数request,将里面的内容以字典的形式返回给所有模板,模板通过 {{ key }}取值。

配置:它需要被配置在 settings里 

提示:在django的上下管理器中,尽量不要写太重量级的代码,因为上下文渲染器的中代码,每一次请求都会执行一次,如果这个渲染器过重,会非常影响性能

以上是关于django_上下文管理器的主要内容,如果未能解决你的问题,请参考以下文章

Django初学习:模板-上下文管理器的使用

python上下文管理器

上下文管理器

Python上下文管理器

python上下文管理器

python中的上下文管理器