Django获取请求参数方式
程序员文章站
2022-03-23 12:27:14
...
前端传参方式
-
请求行: url传参(/分隔,url路径),查询字符串传参(?开头key=value形式)
-
请求头: 如cookie
-
请求体:表单格式,非表单格式如json
请求行url传参:
-
请求行url传参
请求方式为:https://xxx/xxxx/xxxx/xxx 路径的形式
接收方式: 使用正则匹配url中的路径接收参数,参数接收顺序固定 -
请求行url传参, 接收时关键词名称必须相同
请求方式为:https://xxx/xxxx/xxxx/xxx 路径的形式
接收方式 : 关键字形式接收参数 -
查询字符串传参, 接收时关键词名称必须相同
请求方式为:https://xxx/xxxx?a=acd&b=123&c=qwe&a=234 (查询字符串)
接收方式:request.GET.get(key)
可获取对应的值,如果有一个键对用多个值的情况获得的是最后一个 值,另外使用request.GET.getlist(key)
获得由所有对应值组成的一个列表注意: 其中
request.GET
中的GET指的是从请求行获取参数,而不是get方式的请求
这两种方式可以混合使用,并且post和get方式访问都可以
请求体传参:
请求体数据格式不固定,可以是表单类型字符串,可以是JSON字符串,可以是XML字符串,应区别对待。
可以发送请求体数据的请求方式有POST、PUT、PATCH、DELETE。
Django默认开启了CSRF防护,会对上述请求方式进行CSRF防护验证,在测试时可以关闭CSRF防护机制,方法为在settings.py文件中注释掉CSRF中间件,
-
表单数据 : 前端发送的表单类型的请求体数据,可以通过
request.POST
属性获取,返回QueryDict对象。
请求方式为:POST
接收方式: request.POST.get(a)获得表单中a的值
-
非表单数据json,文件,音频
非表单类型的请求体数据,Django无法自动解析,可以通过request.body属性获取最原始的请求体数据,自己按照请求体格式(JSON、XML等)进行解析。request.body返回bytes类型。其中因为pyhon3.5之前json.loads()方法只能接收str所有要使用decode()转码为str才能使用,但是在python3.6以后json.loads()可以接收str和byte类型不使用decode()依然可以使用
请求头传参:
- 可以通过request.META属性获取请求头headers中的数据,request.META为字典类型。
def get_headers(request):
print(request.META['CONTENT_TYPE']) # 获取请求头中的content_type
return HttpResponse('OK')
上一篇: stl
推荐阅读
-
Android拦截并获取WebView内部POST请求参数的实现方法
-
汇总:ASP.NET Core中HttpContext获取传参数据,有哪些方式
-
JS获取url参数,JS发送json格式的POST请求方法
-
基于express中路由规则及获取请求参数的方法
-
微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。
-
jsp获得get方式请求中文参数解决方法
-
PHP URL参数获取方式的四种例子
-
jsp页面中获取servlet请求中的参数的办法详解
-
django开发post接口简单案例,获取参数值的方法
-
记录spring-cloud-gateway获取post请求body参数,以及后端服务处理后的响应参数过程 gateway:2.2.0.RELEASE