Django 视图最佳实践:显式或隐式上下文?
Django views best practice : explicit or implicit context?
我想知道在视图渲染中显式上下文定义和隐式使用 locals()
参数之间是否存在 'best' 解决方案。
最初的做法是 'declare' 每个变量都在视图的上下文中使用,多亏了字典,但 Django 提出了一些快捷方式,还提供了考虑所有变量的能力在视图中定义为上下文的一部分。
这两个选项之间是否有任何区别(字典中定义的上下文变量与 'locals()'),并且是其中之一 'better'(为什么?)?
顺便说一句(附属问题):我对 Django 很陌生,我从未使用过 return HttpResponse(...)
但总是 return render(...)
,我错了吗?
使用locals()
是反模式。 IMO 你应该总是定义你想传递给模板的内容。如果你传递 locals()
你也可以覆盖 context_variable
看看python的禅:https://www.python.org/dev/peps/pep-0020/
Explicit is better than implicit.
Render 函数是 HttpResponse
、render_to_string
、(https://docs.djangoproject.com/en/4.0/topics/http/shortcuts/#render) 的“捷径”,所以使用它是个好主意:)
我想知道在视图渲染中显式上下文定义和隐式使用 locals()
参数之间是否存在 'best' 解决方案。
最初的做法是 'declare' 每个变量都在视图的上下文中使用,多亏了字典,但 Django 提出了一些快捷方式,还提供了考虑所有变量的能力在视图中定义为上下文的一部分。
这两个选项之间是否有任何区别(字典中定义的上下文变量与 'locals()'),并且是其中之一 'better'(为什么?)?
顺便说一句(附属问题):我对 Django 很陌生,我从未使用过 return HttpResponse(...)
但总是 return render(...)
,我错了吗?
使用locals()
是反模式。 IMO 你应该总是定义你想传递给模板的内容。如果你传递 locals()
你也可以覆盖 context_variable
看看python的禅:https://www.python.org/dev/peps/pep-0020/
Explicit is better than implicit.
Render 函数是 HttpResponse
、render_to_string
、(https://docs.djangoproject.com/en/4.0/topics/http/shortcuts/#render) 的“捷径”,所以使用它是个好主意:)