Django上下文处理器

Posted haifeima

tags:

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

什么是上下文处理器

上下文处理器是可以返回一些数据,在全局模板中都可以使用。比如登录后的用户信息,在很多页面中都需要使用,那么我们可以放在上下文处理器中,就没有必要在每个视图函数中都返回这个对象。

自定义上下文处理器

你可以根据这个上下文处理器是属于哪个app,然后在这个app中创建一个文件专门用来存储上下文处理器。或者是你也可以专门创建一个Python包,用来存储所有的上下文处理器。

这里我是专门创建一个Python包:context_processors.py。

用我们的个人博客讲解,title和导航是需要共用的,编写我们的上下文处理器,也就是一个函数。

def nav_title_process(request):
    ‘‘‘上下文管理器,这个函数里面返回的每个变量,在每个页面里面都可以用‘‘‘
    navs = [我的相册,我的日记,python,接口测试]
    title = 我的个人博客
    content = {daohang:navs,title:title,}
    return content

 

编写好这个函数之后,我们还需要在settings.py的TEMPLATES中去将我们的上下文处理器添加进去。

TEMPLATES = [
    {
        BACKEND: django.template.backends.django.DjangoTemplates,
        DIRS: [],
        APP_DIRS: True,
        OPTIONS: {
            context_processors: [
                django.template.context_processors.debug,
                django.template.context_processors.request,
                django.contrib.auth.context_processors.auth,
                django.contrib.messages.context_processors.messages,
                
                # app名.上下文处理器的文件名.上下处理器的函数名
                testDjango.context_processors.nav_title_process
            ],
        },
    },
]

这样,我们就定义好了我们自己的上下文处理器。

定义好了我们的上下文处理器之后,我们就可以直接在前端使用了,在views中也不用编写相关的代码了。

 

 本文转载自

https://blog.csdn.net/xujin0/article/details/84796149 

 

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

什么时候适合使用 Django 上下文处理器?

django基础——上下文处理器

Django模板继承下的动态数据传递—上下文处理器

如何在多片段活动中处理 onContextItemSelected?

Django 上下文处理器不工作?

如何在 Django Summernote 中显示编程片段的代码块?