zoukankan      html  css  js  c++  java
  • 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 

  • 相关阅读:
    KVC(key value coding)/ KVO(key value observing)
    手势识别
    导航控制器掌握内容:
    火车入轨_算法
    卡片游戏_算法
    Python合集之Python循环语句(一)
    Python合集之Python选择语句(四)
    Python合集之Python选择语句(三)
    Python合集之Python选择语句(二)
    Python合集之Python选择语句(一)
  • 原文地址:https://www.cnblogs.com/haifeima/p/11886326.html
Copyright © 2011-2022 走看看