最新的差值(在语言蟒/ django的小白可以理解)在之间的视图render(),render_to_response()和direct_to_template()?
render()
render_to_response()
direct_to_template()
例如,来自Nathan Borror的基本应用示例
def comment_edit(request, object_id, template_name='comments/edit.html'): comment = get_object_or_404(Comment, pk=object_id, user=request.user) # ... return render(request, template_name, { 'form': form, 'comment': comment, })
但我也看到了
return render_to_response(template_name, my_data_dictionary, context_instance=RequestContext(request))
和
return direct_to_template(request, template_name, my_data_dictionary)
有什么区别,在任何特定情况下使用什么?
render(request, template[, dictionary][, context_instance][, content_type][, status][, current_app])
render()是一个render_to_response在1.3中崭新的快捷方式的品牌,该快捷方式将自动使用RequestContext,从现在开始我肯定会使用它。
render_to_response
RequestContext
render_to_response(template[, dictionary][, context_instance][, mimetype])¶
render_to_response是教程等中使用的标准渲染功能。要使用RequestContext你必须指定context_instance=RequestContext(request)
context_instance=RequestContext(request)
direct_to_template是我在视图中使用的通用视图(而不是在URL中使用),因为像新render()功能一样,它会自动使用RequestContext及其所有context_processors。
direct_to_template
context_processor
但direct_to_template 应避免使用,因为不建议使用基于函数的通用视图。使用render还是实际使用的类,