当前位置: 首页 > 面试题库 >

Django-render(),render_to_response()和direct_to_template()有什么区别?

范甫
2023-03-14
问题内容

最新的差值(在语言蟒/
django的小白可以理解)在之间的视图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)

有什么区别,在任何特定情况下使用什么?


问题答案:

https://docs.djangoproject.com/zh-
CN/1.8/topics/http/shortcuts/#render

render(request, template[, dictionary][, context_instance][, content_type][, status][, current_app])

render()是一个render_to_response在1.3中崭新的快捷方式的品牌,该快捷方式将自动使用RequestContext,从现在开始我肯定会使用它。

2020年编辑:应该指出的是render_to_response(),在Django 3.0中已将其删除

https://docs.djangoproject.com/zh-CN/1.8/topics/http/shortcuts/#render-to-
response

render_to_response(template[, dictionary][, context_instance][, mimetype])¶

render_to_response是教程等中使用的标准渲染功能。要使用,RequestContext您必须指定context_instance=RequestContext(request)

https://docs.djangoproject.com/zh-CN/1.8/ref/generic-views/#django-views-
generic-simple-direct-to-
template

direct_to_template是我在视图中使用的通用视图(而不是在URL中使用),因为像新render()功能一样,它会自动使用RequestContext及其所有context_processors。

但是direct_to_template 应避免使用,
因为不建议使用基于函数的通用视图。使用render还是实际使用的类,请参见https://docs.djangoproject.com/en/1.3/topics/generic-
views-migration/

我很高兴很久没打打字RequestContext了。



 类似资料:
  • 问题内容: 最新的差值(在语言蟒/ django的小白可以理解)在之间的视图,和? 例如,来自Nathan Borror的基本应用示例 但我也看到了 和 有什么区别,在任何特定情况下使用什么? 问题答案: 是一个在1.3中崭新的快捷方式的品牌,该快捷方式将自动使用,从现在开始我肯定会使用它。 是教程等中使用的标准渲染功能。要使用你必须指定 是我在视图中使用的通用视图(而不是在URL中使用),因为像

  • 问题内容: django OneToOneField和ForeignKey有什么区别? 问题答案: 请注意,和之间存在一些差异。如《 Django权威指南》所述: 一对一 一对一的关系。从概念上讲,这与 相似,但是关系的“反向”侧将直接返回单个对象。 与“反向”关系相反,“反向”关系返回。 例 例如,如果我们有以下两个模型(下面是完整的模型代码): 模型用途 模型用途 从内部执行以下操作: One

  • 问题内容: 为什么要使用一个来公开Django应用程序的API? 问题答案: TastyPie 正如Torsten所指出的那样,使用与令人敬畏的django-haystack相同的偷偷摸摸的东西写的东西不会出错。从我在邮件列表中看到的内容来看,Daniel Lindsey等人非常有帮助,Tastypie稳定,全面并且有据可查 出色的表现为你提供了一套明智的默认行为,并使使用这种样式的API的构建变

  • 问题内容: 为什么Django需要引入装饰器?为什么它不能重用python ? 问题答案: 最好的解释是源代码本身: 区别在于,可以在实例上调用a,与在类上调用具有相同的效果,但是只能在类上调用。

  • 问题内容: 考虑一下: 一方面,它更干净,更pythonic。另一方面,你将用作第一个参数,但我觉得这很多余和令人困惑。所以我开始怀疑更大的差异… 根据文档: 因此,区别仅在于使用。那么,的重要之处是什么?让我们再次看一下文档: 好。根本没关系 因此,这是重要的部分-确保所有上下文处理器都能正常工作,并重点放在csrf上。所以真的,回到我的第一个示例,这些实际上是相同的: 现在,第二个例子显然更糟

  • 问题内容: 看到django文件有时会同时使用吗?它们相同吗?有什么区别,参考在哪里?我只看到pk的文档。 顺便说一句,Django参考是否涵盖了其类的所有方法? 问题答案: 是包含模型主键值的属性。作为默认主键建立的字段的名称