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

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)

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


问题答案:
render(request, template[, dictionary][, context_instance][, content_type][, status][, current_app])

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

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

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

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

direct_to_template 应避免使用,因为不建议使用基于函数的通用视图。使用render还是实际使用的类,



 类似资料:
  • 问题内容: 最新的差值(在语言蟒/ django的小白可以理解)在之间的视图,和? 例如,来自Nathan Borror的基本应用示例 但是我也看到了 和 有什么区别,在任何特定情况下使用什么? 问题答案: https://docs.djangoproject.com/zh- CN/1.8/topics/http/shortcuts/#render 是一个在1.3中崭新的快捷方式的品牌,该快捷方式

  • 问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型

  • 问题内容: 在Django文档中, “遵循”外键关系,在执行查询时选择其他相关对象数据。 对每个关系进行单独的查找,并在Python中执行“联接”。 “在python中进行连接”是什么意思?有人可以举例说明吗? 我的理解是,对于外键关系,使用; 对于M2M关系,请使用。它是否正确? 问题答案: 你的理解基本上是正确的。你可以使用select_related时,你将要选择的对象是一个对象,所以One

  • 在Django doc, “跟随”外键关系,在执行查询时选择其他相关对象数据。 我的理解是,对于外键关系,使用;对于M2M关系,请使用。这是正确的吗?

  • 问题内容: 有什么不同?您什么时候使用什么? 问题答案: 直接来自Django模型字段参考: 如果为,则Django将在数据库中存储空值。默认值为。 请注意,空字符串值将始终存储为空字符串,而不是。仅用于非字符串字段,例如整数,布尔值和日期。对于这两种类型的字段,如果您希望允许使用表单中的空值,则还需要进行设置,因为该参数仅影响数据库的存储(请参阅参考资料)。 除非有充分的理由,否则请避免在基于字

  • 问题内容: 今天,我按照一些说明在Linux中安装软件。有一个脚本需要首先运行。它设置一些环境变量。 指令告诉我要执行,但是我执行错误了。因此未设置环境。最后,我注意到了这一点并继续进行。 我想知道这两种调用脚本方法的区别。我对Linux完全陌生,所以请尽可能详细。 问题答案: 运行脚本,将启动一个新的运行脚本的外壳。新的外壳程序不会影响启动脚本的父外壳程序。 是的简写形式,它将在当前shell中