zoukankan      html  css  js  c++  java
  • 三.接收并处理请求参数与QueryDict对象

     一.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)
    
    
  • 相关阅读:
    Linux命令笔记
    拆功放板笔记
    从输入 URL 到页面加载完的过程中都发生了什么---优化
    python学习笔记(三)
    python学习笔记(二)
    python学习笔记(一)
    公交wifi运营平台分析
    testNG小试牛刀
    maven小项目注册服务(三)--web模块
    用maven进行测试
  • 原文地址:https://www.cnblogs.com/dbslinux/p/13019917.html
Copyright © 2011-2022 走看看