为什么Django的render()函数需要"请求"争论?

时间:2014-09-03 09:36:47

标签: django

对于可能是一个愚蠢的问题感到抱歉,但为什么request函数必须使用render()参数?

3 个答案:

答案 0 :(得分:6)

render()快捷方式使用request context呈现模板。模板上下文处理器获取请求对象并返回添加到上下文中的字典。

通用模板上下文处理器是auth context processor,它接收请求对象,并将登录用户添加到上下文中。

如果您不需要render带有请求上下文的模板,则可以使用request=None

def my_view(request):
    return render(None, "my_template.html", {'foo': 'bar'})

答案 1 :(得分:0)

在django中,渲染用于加载模板。为此,我们

import-from django.shortcuts import render

它是模板快捷方式。 渲染是收集数据(如果有)并加载相关模板的过程

答案 2 :(得分:0)

要在视图上下文之外(即没有request对象的情况下渲染模板),可以使用render_to_string()

from django.template.loader import render_to_string

render_to_string('path/to/template.html', context={'key': 'val'})