【Django—request对象方法】

本文详细解读了Django中HttpRequest对象的request.method、request.POST、request.GET、request.FILES和request.body的用法,以及如何根据请求类型处理不同数据。特别强调了POST与GET的区别,以及处理文件上传的注意事项。
摘要由CSDN通过智能技术生成


当一个页面被请求时,Django就会创建一个包含本次请求原信息的HttpRequest对象。
Django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 request 参数承接这个对象。

后端接收到的来至前端的信息几乎全部来自于request中

浏览器提交的请求分为GET与 POST两种,所以在视图函数中,对于不同的请求,我们应该做出不同的响应;

request.method

一个字符串,表示请求使用的HTTP 方法。必须使用大写。 POST/GET

request.POST

一个类似于字典的对象,如果请求中包含表单数据

获取post方式表单中提交的数据

request.POST["username"]
request.POST.get("username")
request.POST.getlist("username")

注意:get方法只能获取表单中username的值的列表中的最后一个,得到的是一个字符串类型;
getlist方法获取的才是完整的的列表!!!

**POST 请求可以带有空的 POST 字典 —— 如果通过 HTTP POST 方法发送一个表单,但是表单中没有任何的数据,QueryDict 对象依然会被创建。 因此,不应该使用 if request.POST 来检查使用的是否是POST 方法;应该使用 if request.method == “POST” **

另外:如果使用 POST 上传文件的话,文件信息将包含在 FILES 属性中

request.GET

一个类似于字典的对象,包含 HTTP GET 的所有参数

获取url路径中 ?后提交的数据,不一定只获取GET方式提交的数据,也可以获取POST

request.GET["username"]
request.GET.get("username")
request.GET.getlist("username")

注意:get方法只能获取表单中username的值的列表中的最后一个,得到的是一个字符串类型;
getlist方法获取的才是完整的的列表!!!

request.FILES

一个类似于字典的对象,包含所有的上传文件信息。 FILES 中的每个键为<input type=“file” name=“” /> 中的name,值则为对应的数据。

注意,FILES 只有在请求的方法为POST 且提交的 带有enctype=“multipart/form-data” 的情况下才会包含数据。否则,FILES 将为一个空的类似于字典的对象。

request.body

存放的是接收过来的最原始的二进制数据
request.POST、request.GET、request.FILES这些获取数据的方法其实都从body中获取数据并解析存放的

request.path

请求的路径,这里的路径是指相对路径,一个字符串,表示请求的路径组件(不含域名)

例如:“/music/bands/the_beatles/”

获取完整路径(包括参数):

HttpRequest.get_full_path()

获取绝对url:

HttpRequest.bulid_absolute_uri(location)此参数默认为完整路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值