上下文渲染器RequestContext

Posted songbird

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上下文渲染器RequestContext相关的知识,希望对你有一定的参考价值。

在render_to_response中加RequestContext会将settings中设置的context_processors返回值收集起来传到模板
return render_to_response(index.html, {...}, context_instance=RequestContext(request))

settings.py

TEMPLATES = [
    {
        BACKEND: django.template.backends.django.DjangoTemplates,
        DIRS: [os.path.join(BASE_DIR, templates)]
        ,
        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,
                BookStore.views.global_settings,
                django.template.context_processors.media,
                BookStore.context_processor.ip_address,

            ],
        },
    },


可以手动写个上下文渲染器(以下摘自自强学堂):新建context_processor.py

添加以下内容

 
def ip_address(request):
    return {ip_address: request.META[REMOTE_ADDR]}
settings.py中加入对应路径,如上面的settings.py加入了‘BookStore.context_processor.ip_address‘

 在模板中就可以使用

{{ ip_address }}

 

https://lincolnloop.com/blog/2008/may/10/getting-requestcontext-your-templates/

这里有如何向render_to_response添加RequestContext的方法。

有个@render_to感觉非常经典,代码如下

def render_to(template_name):
    def renderer(func):
        def wrapper(request, *args, **kw):
            output = func(request, *args, **kw)
            if not isinstance(output, dict):
                return output
            return render_to_response(request, template_name, output)
        return wrapper
    return renderer

@render_to(my_template.html)
def my_view(request):
    # View code here...
    return some_dict

 

 

以上是关于上下文渲染器RequestContext的主要内容,如果未能解决你的问题,请参考以下文章

GLSL:无法从 FBO 读取纹理并使用片段着色器渲染到另一个 FBO

为啥片段着色器比渲染纹理更快?

如何在渲染之间更改片段着色器颜色?

有没有办法在片段着色器中使用先前渲染的结果?

Vertex and FragmentShader顶点与片段着色器

flask基础之AppContext应用上下文和RequestContext请求上下文