Django 文档中的示例:
def index(request):
return HttpResponse('<h1>hellworld!</h1>')
def detail(request, question_id):
return HttpResponse("Question: %s" % question_id)
既然从未使用过 request 参数,为什么我要将它包含在每个函数签名中?
请您参考如下方法:
网络服务器的目的是回复 HTTP 请求(简单来说)。 Django 是一个 Web 框架,它根据收到的请求生成响应。
处理请求的业务逻辑由 Django Views 完成,这是它们的目的。这就是 Django 向 View 函数提供请求的原因,因此代码可以访问请求数据并选择它应该采取的操作以及它应该发回的响应(即使那个特定的 View 没有使用它)。
要求 View 接收请求作为参数的决定是 Django 开发人员做出的实现决定,使其成为 View 与“系统”其余部分的接口(interface)的一部分。其他框架可能会选择使其在全局范围内可用,而不是直接将其提供给 View / Controller ,但一种或另一种方法的优点是其他讨论。
