【Django 010】Django2.2试图函数详解(二):通过HttpRequest对象获取GET和POST传递内容

上一小节我们成功从客户端访问的url中提取到了路径信息,但是路径里面包含的自定义信息毕竟少,更多的时候是通过查询参数和POST上去的内容。那么这一小节我们就来看看如何获取这些信息。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

操作环境

先总结下我的操作环境:

  • Centos 7
  • Python 3.7
  • Pycharm 2019.3
  • Django 2.2

因为Django长期支持版本2.2LTS和前一个长期支持版本1.11LTS有许多地方不一样,需要小心区分。

获取url的查询参数信息

实际场景的路径信息是不太频繁变换的,更多的请求信息都在查询参数当中,如果是POST场景下甚至都不在url里面。这些信息要怎么获取呢?需要借助于Django中的Request和Response对象了。这一节我们来认识一下这个Request对象,后面的小节我们再看Response。

Request和Response的详细说明可以参考官方文档

不管是GET或是POST方法,都会创建一个HttpRequest对象,Django会将这个对象传递给view函数的第一个参数request。同时每个view函数返回的一定是一个HttpResponse对象。

即使是render方法,返回的也是一个HttpResponse对象

通过这个HttpRequest对象的属性,不仅可以获得我们上面提到的信息,还有很多额外的东西可以提取出来。我们用实例来感受下。

创建路由以及view函数如下

path('sendrequest/',views.sendrequest),
def sendrequest(request):
    print(request.path)
    print(request.body)
    print(request.method)
    print(request.GET)
    print(request.POST)
    print(request.get_full_path())
    print(request.headers)
    return HttpResponse('Request Success.')

如果只是简单访问http://127.0.0.1:8000/two/sendrequest/,打印出来的内容如下

/two/sendrequest/
b''
GET
<QueryDict: {}>
<QueryDict: {}>
/two/sendrequest/
{'Content-Length': '', 'Content-Type': 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值