欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Django获取请求参数方式

程序员文章站 2022-03-23 12:27:14
...

前端传参方式

  • 请求行: url传参(/分隔,url路径),查询字符串传参(?开头key=value形式)

  • 请求头: 如cookie

  • 请求体:表单格式,非表单格式如json

请求行url传参:

  • 请求行url传参
    请求方式为:https://xxx/xxxx/xxxx/xxx 路径的形式
    接收方式: 使用正则匹配url中的路径接收参数,参数接收顺序固定
    Django获取请求参数方式

  • 请求行url传参, 接收时关键词名称必须相同
    请求方式为:https://xxx/xxxx/xxxx/xxx 路径的形式
    接收方式 : 关键字形式接收参数Django获取请求参数方式
    Django获取请求参数方式

  • 查询字符串传参, 接收时关键词名称必须相同
    请求方式为:https://xxx/xxxx?a=acd&b=123&c=qwe&a=234 (查询字符串)
    接收方式:request.GET.get(key)可获取对应的值,如果有一个键对用多个值的情况获得的是最后一个 值,另外使用request.GET.getlist(key)获得由所有对应值组成的一个列表

    注意: 其中request.GET中的GET指的是从请求行获取参数,而不是get方式的请求
    Django获取请求参数方式

这两种方式可以混合使用,并且post和get方式访问都可以

请求体传参:

请求体数据格式不固定,可以是表单类型字符串,可以是JSON字符串,可以是XML字符串,应区别对待。

可以发送请求体数据的请求方式有POST、PUT、PATCH、DELETE。

Django默认开启了CSRF防护,会对上述请求方式进行CSRF防护验证,在测试时可以关闭CSRF防护机制,方法为在settings.py文件中注释掉CSRF中间件,

  • 表单数据 : 前端发送的表单类型的请求体数据,可以通过request.POST属性获取,返回QueryDict对象。
    请求方式为:POST
    接收方式: request.POST.get(a)获得表单中a的值
    Django获取请求参数方式
  • 非表单数据json,文件,音频
    非表单类型的请求体数据,Django无法自动解析,可以通过request.body属性获取最原始的请求体数据,自己按照请求体格式(JSON、XML等)进行解析。request.body返回bytes类型。
    Django获取请求参数方式
    其中因为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')
相关标签: Django