zoukankan      html  css  js  c++  java
  • Django之HttpRequest和HttpReponse

      当一个web请求链接进来时,django会创建一个HttpRequest对象来封装和保存所有请求相关的信息,并且会根据请求路由载入匹配的试图函数,每个请求的试图函数都会返回一个HttpResponse对象。

      HttpRequest和HttpReponse类都包含在django.http包中

    1. HttpRequest类

    HttpRequest属性

    HttpRequest.scheme
    请求协议(http或者https)
    HttpRequest.body
    以字节的方式返回请求体内容;可以通过HttpRequest.POST获取处理后的key和value,也可以通过HttpRequest.read()格式化
    HttpRequest.path
    返回请求的完整路径,不包括协议和域名
    HttpRequest.GET 
    GET请求参数,返回一个queryDict对象
    HttpRequest.POST
    获取表单提交的数据,如果是通过POST请求提交的其它非表单数据,可以使用HttpRequest.Body获取;使用时可以通过if request.method == "PSOT"来进行预判断
    HttpRequest.method
    返回请求方式
    HttpRequest.environ
    返回一个字典,包含所有django运行的环境信息
    HttpRequest.content_type
    文件格式
    HttpRequest.content_params
    参数
    HttpRequest.COOKIES
    返回一个字典,包含浏览器存储的所有cookie
    HttpRequest.FILES
    返回一个MultiValueDict,包含上传的文件
    HttpRequest.META
    返回一个包含所有请求相关信息的字典(包含Headers),同environ
    HttpRequest.resolver_match
    返回请求处理的url及相关参数
    HttpRequest.session
    中间件,设置session,一个可读可写的字典对象
    HttpRequest.get_host()
    获取请求的主机和端口
    HttpRequest.get_port()
    获取端口
    HttpRequest.get_full_path()
    返回完整路径,同path
    HttpRequest.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None) 
    获取以一个cookie
    HttpRequest.is_ajax()
    判断是否为ajax请求
    HttpRequest.is_secure()
    判断是否为https请求

    2. HttpResponse类

      HttpResponse类用于设置响应头和响应内容,它分为实例化对象、填充设置以及返回三个部分

    from django.http import HttpResponse
    
    # 实例化一:
    responseOne = HttpResponse("this is a http response")
    # 实例化二: responseTwo
    = HttpResponse() responseTwo.write("this is another http response") responseTwo.writelines(["this is second line", "this is third line"])
    # 设置响应头 responseOne[
    "Age"] = 20 responseOne["app"] = "sample" del responseOne["app"] # 设置响应头 responseOne["content_type"] = 'application/vnd.ms-excel' responseOne['Content-Disposition'] = 'attachment; filename="foo.xls"' responseOne.set_cookie("date", "2018-08-21", path="/page", ) # 设置cookie responseOne.delete_cookie("date") # 删除cookie
    # 有关对象 print(responseOne) # HttpResponse print(responseOne.items()) # dict_values print(responseOne.cookies) # cookie print(responseOne.content) # 内容(字节) print(responseOne.charset) # 编码 print(responseOne.status_code) # 状态码 print(responseOne.streaming) # 是否为流 print(responseOne.closed) # 是否已发送response print(responseOne.serialize()) # 序列化响应头和相应内容 print(responseOne.serialize_headers()) # 序列化响应头 print(responseOne.
    get("Age")) # 获取响应头中的某个键值对 print(responseTwo.getvalue()) # 获取相应的内容 # 将response设置为流数据处理 responseTwo.readable() responseTwo.seekable() responseTwo.write("...")
  • 相关阅读:
    示波器测量电源的纹波
    hdoj 2717 Catch That Cow
    hdoj 1548 A strange lift
    hdoj 4586 Play the Dice
    zoj 2095 Divisor Summation
    hdoj 4704 Sum
    router-link传参
    字体自适应
    横向滚动div
    vue路由
  • 原文地址:https://www.cnblogs.com/xiaobingqianrui/p/9894902.html
Copyright © 2011-2022 走看看