zoukankan      html  css  js  c++  java
  • Django中创建自己的Context_Processors

    在settings.py中有一个变量TEMPLATE_CONTEXT_PROCESSORS

    一般它担任对我们的模板页面与环境进行处理解析的过程
     
    比如原来默认的django不能在template中使用request这个变量相关的信息(session、path等)
    则可以通过将django已有的context_processor加入其中
    变成类似这样:
    TEMPLATE_CONTEXT_PROCESSORS = (
        'django.core.context_processors.request',
        'xquan.common_setting.common',
        'django.core.context_processors.debug',
        'django.core.context_processors.media',
        'django.core.context_processors.static'
    )
    这样我们就能在template中使用{{request.session}}之类的变量了
    查看 django.core.context_processors.request的源码,可以看到非常简单的代码:
    def request(request):
        return {'request': request}
    仿照上面的我们可以自己编写context_processor,这样我们就能在template中使用我们自己的东西,比如一些页面公共的参数之类的
    很简单,就只是一个视图函数,但是它不返回HttpResponse对象,而是一个字典
    def common(request ):
        if settings.DEBUG:
            return {'BASE_URL':'http://localhost:8000/'}
        return {'BASE_URL':'http://xquan.sinaapp.com'}
    并且在TEMPLATE_CONTEXT_PROCESSORS中加入该视图函数的路径名
    这样就能在app中的任何template中使用 {{ BASE_URL }}
    不要忘记在使用这个template的时候要用到RequestContext对象。
  • 相关阅读:
    cnetos7安装mysql并开启慢日志查询
    ansible-playbook安装zabbix_server,agent监控
    mysql性能优化之服务器参数配置-内存配置
    什么影响了mysql的性能-存储引擎层
    什么影响了mysql的性能-硬件资源及系统方面优化
    redis基本操作使用
    cmd下操作MySQL
    Win10安装MySQL
    Linux 操作
    PySpark—DataFrame笔记
  • 原文地址:https://www.cnblogs.com/amghost/p/3572136.html
Copyright © 2011-2022 走看看