zoukankan      html  css  js  c++  java
  • Django学习笔记第二篇--关于请求获取

    #细节都在代码段里面讲解

    零、绪论:

    HTTP协议是一种请求响应的协议,一次请求一次响应。所以这部分的讲解将分为三个部分:请求获取,分析处理、返回响应。

    一、获取请求数据:

    1、POST和GET类型

    1 #GET/POST
    2 request.GET["para_name"]
    3 request.POST["para_name"]
    4 #都是字典可以使用get方法
    5 #对于方法的选择:
    6 HttpRequest.method==GET#或者POST或者其他

    2、其他类,例如PUT和DELETE,其他的也不多了,OPTIONS 不带数据

    1 put = QueryDict(request.body)
    2 key = put.get('key')
    3 field = put.get('field')
    4 field_value = put.get('field-value')
    5 
    6 #把request.body也就是请求报文体,结构化成QueryDict,看情况,有时候数据体部分也可能是json化的。delete同理

    3、文件类型:

     1 #FILES:
     2 fileobject = request.FILES.get("para_name")
     3 filename = fileobject.name
     4 filesize = fileobject.size
     5 filetype = fileobject.content_type
     6 filecontent = fileonject.read
     7 filecharset =fileobject.charset
     8 #上传文件配置限制:
     9 FILE_UPLOAD_MAX_MEMORY_SIZE
    10 #直接读入内存的最大上传文件大小(字节数)。当大于此值时,文件存放到磁盘。默认2.5M字节
    11 FILE_UPLOAD_TEMP_DIR
    12 FILE_UPLOAD_PERMISSIONS#权限
    13 FILE_UPLOAD_HANDLERS 
    14 #对于表单上传文件的一个简单处理:
    15 def handle_uploaded_file(f):
    16     destination = open('some/file/name.txt','wb+')
    17     for chunk in f.chunks(): 
    18         destination.write(chunk)
    19     destination.close()

    4、请求头部字段:

    1 head = request.META
    2 #这是一个字典,所有和请求甚至和响应有关的上下文结构都在里面,所以头部字段也在里面
    3 #例如想要取出user-agent
    4 useragent = head["HTTP_USER_AGENT"]

    5、session和cookies

    1 #cookie直接获取cookie是一个字典
    2 cookie = request.COOKIES
    3 csrftoken = cookie["csrftoken"]
    4 #session也是一个字典结构:
    5 request.session["admin"]
    6 request.session.get("admin")
    7 #对这些的cookie和session的处理我们将在数据处理部分做介绍

    6、user

     1 #AUTH_USER_MODEL 的一个实例对象
     2 #用来表明当前用户,匿名用户时候则为id为None,username为空字符串。
     3 #常见的字段:id username group password
     4 is_active
     5 is_staff
     6 is_superuser
     7 #常见的函数:
     8 is_authenticated()
     9 is_anonymous()
    10 set_password()
    11 check_password()
    12 get_username()
    13 save()
    14 delete() 

    7、其他请求上下文属性:

    1 HttpRequest.scheme#协议,一般为http或者https
    2 HttpRequest.body#数据部分,可以使用HttpRequest.read()获取
    3 HttpRequest.path(path_info)#关于请求的路径部分信息
    4 HttpRequest.encoding#请求的编码方式
    5 HttpRequest.REQUEST#一个字典,相当于POST和GET的字典合集

    8.关于上下文的一些方法:

     1 HttpRequest.get_host()
     2 HttpRequest.get_full_path()
     3 HttpRequest.get_build_absolute_uri()
     4 #HttpRequest.get_signed_cookie()
     5 HttpRequest.is_secure()#是否是HTTPS
     6 HttpRequest.is_ajax()#是否为Ajax请求
     7 HttpRequest.read()
     8 HttpRequest.readline()
     9 HttpRequest.readlines()
    10 HttpRequest.xreadlines()
  • 相关阅读:
    列表的排序和统计。
    pyoo6 列表 004
    py005 列表 03
    py004列表02
    py 003 列表01
    py。002 字符串(str)
    py_001 运算符
    【python--字典】 字典的嵌套
    【python--字典】 字典的增删改查
    【python--字典】 字典的有效性
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/8328763.html
Copyright © 2011-2022 走看看