单爆手

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 一.get与post请求:重点看传参与接收参数

  GET请求与传参   ---->url后面跟上?k1=v1&&k2=v2

  POST请求与数据提交

(1)get请求:如直接在浏览器url后跟上?a=b--->http://127.0.0.1:8000/dashboard/?a=b

    那如何获取url后面的这个参数呢?---它是被存放在request.GET中,是一种QueryDict数据类型

 QueryDIct对象:

         如浏览器中输入 http://127.0.0.1:8000/dashboard/?aa=bb&&cc=dd&&cc=ee ,传了三个参数aa,cc,cc两个变量aa,cc后终端显示如下效果:

   

 

 

  那怎样取到cc变量中某一个值?

print(request.GET.get("aa"))  -->(打印aa变量)结果为bb
prin t(request.GET.getlist("cc")) --->结果为列表['dd', 'ee']
print(request.GET) -->(完整的request请求)结果为<QueryDict: {'aa': ['bb'], 'cc': ['dd', 'ee']}>

(2)post请求:

(python36env) [vagrant@CentOS7 devops]$ pip install requests

QueryDIct对象:
  在HttpRequest 对象中,GET 和POST 属性是django.http.QueryDict 的实例,它是一个自定义的类似字典的类,用来处理同一个键带有多个值。这个类的需求来自某些HTML 表单元素传递多个值给同一个键.(如checkbox)
  request.POST 和request.GET 的QueryDict 在一个正常的请求/响应循环中是不可变的,也就是只读的。若要获得可变的版本,需要使用.copy()。
  https://docs.djangoproject.com/en/1.11/ref/requestresponse/#querydict-object 
进入django的shell:
(python36env) [vagrant@CentOS7 ~]$ cd /vagrant/devops/
(python36env) [vagrant@CentOS7 devops]$ ls
dashboard  devops  manage.py  __pycache__
(python36env) [vagrant@CentOS7 devops]$ clear
(python36env) [vagrant@CentOS7 devops]$ python manage.py shell
In [1]:  

实例化QueryDict
QueryDict.__init__(query_string=None, mutable=False, encoding=None)
示例
>>> QueryDict('a=1&a=2&c=3')
<QueryDict: {'a': ['1', '2'], 'c': ['3']}>
QueryDict方法:
QueryDict.get(key, default=None)
QueryDict.setdefault(key, default=None)[source]
QueryDict.update(other_dict)
QueryDict.items()
QueryDict.values()
QueryDict.copy()
QueryDict.getlist(key, default=None)
QueryDict.setlist(key, list_)[source]
QueryDict.appendlist(key, item)
QueryDict.setlistdefault(key, default_list=None)
QueryDict.lists()
QueryDict.pop(key)
QueryDict.popitem()
QueryDict.dict()
QueryDict.urlencode(safe=None)

posted on 2020-05-31 17:17  单爆手  阅读(634)  评论(0编辑  收藏  举报