一.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)