【问题标题】:Django views best practice : explicit or implicit context?Django 视图最佳实践:显式或隐式上下文?
【发布时间】:2022-01-16 12:32:31
【问题描述】:

我想知道在显式上下文定义和在视图渲染中隐式使用 locals() 参数之间是否存在“最佳”解决方案。

最初的做法是“声明”每个变量以在视图的上下文中使用,这要归功于字典,但 Django 提出了一些快捷方式,并且还提供了考虑视图中定义的所有变量的能力成为上下文的一部分。

这两个选项(在 dict 中定义的上下文变量与“locals()”)之间是否有任何区别,其中一个是否“更好”(为什么?)?

顺便说一句(附属问题):我对 Django 很陌生,我从未使用过return HttpResponse(...),但总是使用return render(...),我错了吗?

【问题讨论】:

    标签: django django-views


    【解决方案1】:

    使用locals() 是反模式。 IMO,您应该始终定义要传递给模板的内容。如果你通过locals()你也可以覆盖context_variable

    看一看python之禅:https://www.python.org/dev/peps/pep-0020/

    Explicit is better than implicit.

    渲染函数是HttpResponserender_to_string、(https://docs.djangoproject.com/en/4.0/topics/http/shortcuts/#render) 的“捷径”,所以使用它是个好主意:)

    【讨论】:

    • 感谢@Sharpek 的回答!但是,就快捷方式而言,使用locals() 代替context_variable 和使用render 代替HttpResponse 有什么区别?
    猜你喜欢
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 2018-02-01
    • 2016-07-17
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 2017-02-21
    相关资源
    最近更新 更多