zoukankan      html  css  js  c++  java
  • Django里面的RequestContext

        c = RequestContext(request, {
        'foo': 'bar',
        })
    
        get_template('about.html').render(c)

    当我们定义一个RequestContext对象的时候,它的构造函数 __init__

    会调用 get_standard_processors(), 返回一个collect

            collect.extend(_builtin_context_processors)
            collect.extend(settings.TEMPLATE_CONTEXT_PROCESSORS)


    这个就和TEMPLATE_CONTEXT_PROCESSORS 联系在一起, 得到settings里面的设置.

    这个过程只执行一次,当下次再执行的时候,由于

    global _standard_context_processors 变量非none.



    另外观察RequestContext的__init__

        def __init__(self, request, dict_=None, processors=None, current_app=None,
                use_l10n=None, use_tz=None):

    有一个processors参数,我们可以在构造对象的时候,给它n个临时的processor


    =================Example================================

    Info.xml

    <!DOCTYPE html>
    <html>
    <head>
    	About firstDJ
    </head>
    
    <body>
    	Thanks for watching me, my address is <b>{{myaddress}}</b>, my request is <b>{{myrequest}}</b>...
    </body>
    </html>
    


    py

    def custome_proc(request):
        return {'myaddress': request.META['REMOTE_ADDR']}
    
    def hello(request, *args, **kwargs):
        
        c = RequestContext(request, {
        'myrequest': 'milk',
        },
        processors = [custome_proc])
    
        t = get_template('info.html')
        return HttpResponse(t.render(c))


    结果




  • 相关阅读:
    webpack中设置jquery为全局对象
    JS判断不同web访问环境,主要针对移动设备,
    js比较两个日期天数差
    原生js跨域
    我们项目中用到的jsonp跨域
    Js跨域解决方法总结
    js call的使用,js call 方法实现继承
    windows下配置bower路径
    兼容弹层代码
    自定义下拉列表框(2015.1.30)
  • 原文地址:https://www.cnblogs.com/james1207/p/3320127.html
Copyright © 2011-2022 走看看