码迷,mamicode.com
首页 > 其他好文 > 详细

Django上下文处理器

时间:2019-11-19 17:04:51      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:dao   ons   根据   相关   导航   直接   contex   管理   djang   

什么是上下文处理器

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

自定义上下文处理器

你可以根据这个上下文处理器是属于哪个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上下文处理器

标签:dao   ons   根据   相关   导航   直接   contex   管理   djang   

原文地址:https://www.cnblogs.com/haifeima/p/11886326.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!