什么是Django视图中的“请求”

时间:2014-11-27 11:35:33

标签: python django

在Django的第一个应用程序的Django教程中,我们有

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

然后urls.py有

from django.conf.urls import url

from polls import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

现在我的问题是传递给索引函数的“request”参数是什么,当在urls.py中调用函数索引时它也没有被传递,而变量它只是作为行中的views.index被调用{{ 1}}

3 个答案:

答案 0 :(得分:5)

request参数是HttpRequest对象,其中包含有关请求的数据(请参阅docs)。

在您的网址文件中,您没有调用view.index函数,只是列出了对它的引用。然后Django在匹配请求进入时调用该函数并将HttpRequest对象作为参数传递。

答案 1 :(得分:2)

这不会直接回答您的问题,但我建议您观看此视频:

A Scenic Drive through the Django Request-Response Cycle

这是Dan Langer今年给出的PyCon演讲,并展示了请求和响应如何在幕后工作。

答案 2 :(得分:1)

来自Django Docs。请求来自想要加载页面的用户。

  

当请求页面时,Django会创建一个HttpRequest对象   包含有关请求的元数据。然后Django加载适当的   视图,将HttpRequest作为第一个参数传递给视图   功能。每个视图都负责返回一个HttpResponse   对象