目前,我已经引用了在公司的django 1.9版本中创建的一些旧项目,并且发现它们到目前为止已经多次使用render_to_string函数,而现在我正在使用render函数,但是我从未使用过render_to_string。
render_to_string函数的示例代码如下。
return HttpResponse(render_to_string('sales/sale.html', {'sale_id' : sale_id, `unique_number`:uni_id}, RequestContext(request)))
我试图在线搜索找到答案,但找不到完美的答案。
这两个功能之间的区别是什么?
何时确定最适合在项目中使用的功能?
谢谢。
答案 0 :(得分:2)
我们可以检查source code of render
[GitHub]:
def render(request, template_name, context=None, content_type=None, status=None, using=None): """ Return a HttpResponse whose content is filled with the result of calling django.template.loader.render_to_string() with the passed arguments. """ content = loader.render_to_string(template_name, context, request, using=using) return HttpResponse(content, content_type, status)
本质上,render
以render_to_string(..)
,template_name
,context
和request
作为参数调用using
,然后构造一个HttpResponse
以及该结果以及可选的content_type
和status
。因此,这是结合两者的捷径。