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 

  • 相关阅读:
    day3-课堂笔记
    day2-作业及答案
    2016年11月19日一周工作知识点总结
    2016年11月19日一周工作知识点总结
    使用JDK开发WebService
    使用JDK开发WebService
    Java WebService 简单实例
    Java WebService 简单实例
    BigDecimal不整除的一个异常java.lang.ArithmeticException
    2016年11月13日周工作知识点总结
  • 原文地址:https://www.cnblogs.com/haifeima/p/11886326.html
Copyright © 2011-2022 走看看