Django框架中render_to_response()函数的使用方法
通常的情况是,我们一般会载入一个模板文件,然后用Context渲染它,最后返回这个处理好的HttpResponse对象给用户。我们已经优化了方案,使用get_template()方法代替繁杂的用代码来处理模板及其路径的工作。但这仍然需要一定量的时间来敲出这些简化的代码。这是一个普遍存在的重复苦力劳动。Django为此提供了一个捷径,让你一次性地载入某个模板文件,渲染它,然后将此作为HttpResponse返回。
该捷径就是位于django.shortcuts模块中名为render_to_response()的函数。大多数情况下,你会使用``\``````对象,除非你的老板以代码行数来衡量你的工作。
SystemMessage:WARNING/2(<string>,line1736);backlink Inlineliteralstart-stringwithoutend-string. SystemMessage:WARNING/2(<string>,line1736);backlink Inlineliteralstart-stringwithoutend-string. SystemMessage:WARNING/2(<string>,line1736);backlink Inlineliteralstart-stringwithoutend-string.
下面就是使用render_to_response()重新编写过的current_datetime范例。
fromdjango.shortcutsimportrender_to_response importdatetime defcurrent_datetime(request): now=datetime.datetime.now() returnrender_to_response('current_datetime.html',{'current_date':now})
大变样了!让我们逐句看看代码发生的变化:
我们不再需要导入get_template、Template、Context和HttpResponse。相反,我们导入django.shortcuts.render_to_response。importdatetime继续保留.
在current_datetime函数中,我们仍然进行now计算,但模板加载、上下文创建、模板解析和HttpResponse创建工作均在对render_to_response()的调用中完成了。由于render_to_response()返回HttpResponse对象,因此我们仅需在视图中return该值。
render_to_response()的第一个参数必须是要使用的模板名称。如果要给定第二个参数,那么该参数必须是为该模板创建Context时所使用的字典。如果不提供第二个参数,render_to_response()使用一个空字典。