为什么要知道request对象?因为我们只要了解到request对象的属性,我们才能获取请求时附带的数据,而这些数据对我们都是很重要的,比如:当我们需要登录校验、返回客户想要的数据等,我们都可以通过request对象来获取数据来实现我们想要展现的功能。
常用属性和方法我们在views.py文件中打印一下这些属性
deflogin(request):ifrequest.method==GET:print(这个是GET请求!)print(request)print(request.method)print(request.path)print(request.GET)returnrender(request,login.html)else:print(这个是POST请求!)print(request.method)print(request.POST)print(request.path)print(request.get_full_path())print(request.META)print(request.body)returnrender(request,index.html)defindex(request):print(这是一个具有多选功能和上传文件的页面请求!)print(request.POST)print(request.FILES)returnrender(request,index.html)
urls.py文件内容如下
urlpatterns=[re_path(r^login/,views.login),re_path(r^index/,views.index),]
login.html文件(具有登录功能)如下
body!--这是一个form表单,action属性定义在提交表单时执行的动作。向服务器提交表单的通常做法是使用提交按钮。通常,表单会被提交到web服务器上的网页。以POST方式--formaction="/login/"method="post"h1这是一个登录页面/h1用户名:inputtype="text"name="username"密码:inputtype="password"name="password"性别:inputtype="radio"name="sex"value="male"男inputtype="radio"name="sex"value="female"女brbutton提交/button/form/body!--注意性别的value的值,男是male,女是female--!
index.html文件(具有多选和上传文件功能)如下
bodyh1首页/h1h1来呀!快活呀!/h1formaction="/index/"method="POST"enctype="multipart/form-data"文件:inputtype="file"name="file"br食物:inputtype="checkbox"name="food"value="0"苹果inputtype="checkbox"name="food"value="1"香蕉inputtype="checkbox"name="food"value="2"橘子inputtype="submit"/form/body!--注意食物的value的值,苹果、香蕉、橘子的value分别为--!
准备就绪,开始运行,先打开.0.0.1:/login/页面,输入用户名、密码和选好性别点击提交。然后会跳转到.0.0.1:/index/页面。在这个.0.0.1:/index/页面里我们上传文件和多选食物。我们看一下Django后台打印出了什么!
首先打印了这些内容
这个是GET请求!WSGIRequest:GET/login/GET/login/QueryDict:{}#这个是views.py文件中login视图函数的GET请求时打印的
再往下看
这个是POST请求!POSTQueryDict:{username:[adon],password:[root],sex:[woman]}/login//login/#由于篇幅太长,省略中间段{ALLUSERSPROFILE:C:\\ProgramData,APPDATA:·············classwsgiref.util.FileWrapper}busername=adonpassword=rootsex=woman#这个是views.py文件中login视图函数的POST请求时打印的
最后还有一段
这是一个具有多选功能和上传文件的页面请求!QueryDict:{food:[0,2]}#因为这里我只选了苹果、橘子,所以是02MultiValueDict:{file:[InMemoryUploadedFile:.txt(text/plain)]}#这个是views.py文件中index视图函数的POST请求时打印的总结
print(request)#WSGIRequest对象print(request.path)#/index/获取路径(不包括查询参数)print(request.method)#请求方法print(request.POST)#POST请求提交的数据print(request.body)#获取