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))


    结果




  • 相关阅读:
    1137 Final Grading (25 分)
    1136 A Delayed Palindrome (20 分)
    1135 Is It A Red-Black Tree (30 分)
    1134 Vertex Cover (25 分)
    1133 Splitting A Linked List (25 分)
    1074 Reversing Linked List (25 分)
    1132 Cut Integer (20 分)
    HDU 3342 Legal or Not
    IDEA解决JSP页面无法使用EL表达式问题
    25. Bootstreap 下拉菜单
  • 原文地址:https://www.cnblogs.com/james1207/p/3320127.html
Copyright © 2011-2022 走看看