无论是Django新手还是老鸟,相信你对Request对象并不陌生。比如定义视图函数时def index(request, *args, ** kargs)我们总是要包含request这个变量,又比如我们经常用request.user来判断当前访问用户状态。request对象包括了很多有用方法和信息。在view函数的执行过程中,你可以用request的方法和属性来获取当前HTTP请求的头部信息(比如,你正在加载这个页面的用户是谁,IP地址是多少,或者用的是什么浏览器)。今天我们就来看看Request对象包含哪些属性和方法,并开发一个简单的app来显示当前访问用户,IP地址及客户端(浏览器)信息。
一个极简的包含request的视图函数
下面是一个极简的Django视图函数代码,用于显示hello world。你会注意到request是灰色的。这是因为index函数包含了request这个变量,然而你却没有使用它。
# views.py
from django.http import HttpResponse def index(request): return HttpResponse("Hello world")
# urls.py
from django.urls import re_path from . import views app_name = "request_demo" urlpatterns = [ re_path(r'^index/$', views.index, name='index'), ]
因为我们本例种不需要使用数据库,所以不需要创建模型(models)。当你访问http://127.0.0.1:8000/index/你就应该能看到hello world字样。
现在我们将视图函数稍微改下,使用request变量打印出请求路径。
# views.py from django.http import HttpResponse def index(request): return HttpResponse("请求路径:{}" .format(request