在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}}
答案 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 对象