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 %}

最新文章

  1. Xen之初体验:HA(额外附加)
  2. linux别名和快捷键
  3. 求余VS求模--C语言中表述
  4. JQuery text()、html() 以及 val()
  5. SQLSERVER吞噬内存解决记录
  6. centos FTP服务器的架设和配置
  7. USACO Section 2.2: Runaround Numbers
  8. POJ 2449
  9. BS常用方法备忘
  10. JS高程5.引用类型(6)Array类型的位置方法,迭代方法,归并方法
  11. 简单vue项目脚手架(vue+webpack2.0+vuex+vue-router)
  12. [Luogu 3690]【模板】Link Cut Tree (动态树)
  13. apache-jmeter-5.0的简单压力测试使用方法
  14. caffe常用
  15. 移动端head头部常用meta标签
  16. Windows2003配置集群详解
  17. FreeBDS之ipf防火墙
  18. info AI drive
  19. .NET世界的包管理器——Nuget
  20. 生成word附件和word域动态赋值

热门文章

  1. [转]perftools查看堆外内存并解决hbase内存溢出
  2. [IOS微信] PList文件解析,boost数据读取
  3. 蓝桥杯—BASIC-25 回形取数
  4. Git的基本使用(github)
  5. Docker容器使用jenkins部署web项目--总结(二)
  6. 多态概念,C++
  7. 设置checkBox不拦截焦点
  8. 51nod1009
  9. Linux:配置samba服务
  10. golang切片类型