HttpResquest(http请求传递数据的4种方式)的数据传递及数据接收方法

本文介绍了HTTP请求中常见的四种数据传递方式:通过请求路径参数,查询字符串,form表单以及请求头。在Django框架下,请求路径参数和查询字符串数据可从request.GET获取,form数据则存在于request.POST中,请求头数据则可通过request.META访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.请求路径中的参数【例如:http://www.baidu.com/text/value这里的value可以传递数据给路由,之后视图就可以取得这个参数】

'''
请求:http://www.baidu.com/text/value
请求方式: get

路由:text/<value>/
'''

#下面两种方式视图任选其一都可以接收到参数

#类视图:
class NewView(View):
    def  get(self,request,value):
        pass

#函数视图:
def newview(request,value):
    pass

2.查询字符串传递数据【查询字符串的定义方式:http://www.baidu.com/text/value/?order=qwe&page=1&order=ewq】在路径后写一个'?'然后可以定义查询字符串中间以&连接

查询字符串数据放在request.GET中是一个Querydict对象支持一键多值,这就是上面的查询字符串中又两个order也可以的原因

'''
请求:http://www.baidu.com/text/value/?order=qwe&page=1&order=ewq
请求方式: get

获取查询字符串中的值的方法:
'''

#获取page: 
request.GET.get('page')

#这种方式如果是一键多值的情况只会获取到该键的最后一个值,也就是ewq
#获取order:
request.GET.get('order')

#获取全部order值,获取到的是一个列表
request.GET.getlist('order')

3.form表单传递数据

#form表单传递数据,数据放在request.POST中也是一个Querydict对象

#获取方法类似查询字符串
value = request.POST.get('key')

json和xml传递数据

'''
前后端交互使用最多的就是json,一般前后端分离的项目都是使用json进行传递数据
json数据保存在request.body中

json数据看起来像字典但是不同于字典的是json用的是双引号:[还有一点要注意的是json如果后面没有数据的话就不要再加逗号分隔了否则会报错,定义字典最后加逗号的好习惯在json中不适用]

字典:{'key':'value','key2','value2',}
json: {"key":"value","key2","value2"}
'''

#导入json方便使用dumps和loads方法转换数据
import json

#接收json数据,第一步接收到的是base数据
body_data = request.body

#将base数据转化为字符串
body_str = body_data.decode()

#将字符串转化为字典
#json.loads()方法可以将字符串转化为字典,一般用于接收json数据
#json.dumps()方法可以将json数据转化为字符串,一般用于将json数据转化后作为响应数据返回给前端
body_dict = json.loads(body_str)

4.请求头传递数据

'''
请求头的数据都放在request.META中
cookie信息就放在请求头中
'''

#获取请求头中的数据
reqeust.META.get('key')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值