首页 > 其他 > 详细

Django中创建自己的Context_Processors

时间:2014-02-28 11:16:10      阅读:352      评论:0      收藏:0      [点我收藏+]

在settings.py中有一个变量TEMPLATE_CONTEXT_PROCESSORS

一般它担任对我们的模板页面与环境进行处理解析的过程
 
比如原来默认的django不能在template中使用request这个变量相关的信息(session、path等)
则可以通过将django已有的context_processor加入其中
变成类似这样:
bubuko.com,布布扣
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
)
bubuko.com,布布扣
这样我们就能在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对象。

Django中创建自己的Context_Processors,布布扣,bubuko.com

Django中创建自己的Context_Processors

原文:http://www.cnblogs.com/amghost/p/3572136.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!