zoukankan      html  css  js  c++  java
  • Django中HtttpRequest请求

    1.什么是HttpRequest
      HttpRequest,就是对请求对象的封装,里面封装的是请求过程中的所有信息。在Django中HttpRequest被封装成request对象并封装到视图处理函数中,在调用视图时自动传入
    2.HttpRequest中的主要内容

      可以使用print(dir(request))查看里面所有的属性及方法。
      1.request.scheme : 请求协议
      2.request.body : 请求主体
      3.request.path : 请求路径
      4.request.get_full_path() : 请求完整的请求路径
      5.request.get_host() : 请求的主机地址 / 域名
      6.request.method : 主要用于判断是否是“GET”或是“POST”方法
      7.request.GET : 封装了get请求方式所提交的数据
      8.request.POST : 封装了post请求方式所提交的数据
      9.request.COOKIES : 封装了 cookies 中的所有数据
      10.request.META : 封装了请求的元数据
        request.META.HTTP_REFERER : 封装了请求的源地址

    3.获取请求提交的数据
      1.get 请求
        1.获取数据
          request.GET['名称']
          request.GET.get('名称')
          request.GET.getlist('名称')
        2.使用get方式提交数据的场合
          1.表单中 method 为get 的时候
          2.地址栏上拼查询字符串的时候
            http://localhost:8000/01-request/?id=1&name=xxx

          注意:
            url(r'^01-request/(d{4})/(d{1,})',xxx)
            http://localhost:8000/01-request/2018/10

            以上方式提交的数据不能使用request.GET来获取,因为以上的方式是 Django 标准而并非 HTTP 标准

      2.post 请求
        1.获取数据
          request.POST['名称']
          request.POST.get('名称')
          request.POST.getlist('名称')
        2.使用POST方式提交数据的场合
          1.使用表单提交时可以使用post
        3.CSRF verification failed (403)
          CSRF : Cross-Site Request Forgery
              跨站点       请求          伪装

        解决方案:
        1.取消csrf的验证:删除 settings.py中 MIDDLEWARE 中的 CsrfViewMiddleware 中间件
        2.在处理函数上增加装饰器:@csrf_protect
        3.可以在 表单中的 第一行增加:{% csrf_token %}

  • 相关阅读:
    linux打开window文件出现乱码 修正
    深入理解计算机系统 第2章 信息的表示和处理
    算法导论 第六章 堆排序 习题6.58 k路合并排序
    python 的二进制、八进制、十六进制数表示
    算法导论 第二章 合并排序-分治算法
    在Emacs中用ibus输入法切换输入法问题
    python round(x[, n])函数
    算法导论 第六章 堆排序
    普林斯顿算法课第四周作业_8Puzzle
    webshell 提权思路
  • 原文地址:https://www.cnblogs.com/zengsf/p/9986401.html
Copyright © 2011-2022 走看看