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

原文地址:https://www.cnblogs.com/zengsf/p/9986401.html

时间: 2024-10-05 04:44:58

Django中HtttpRequest请求的相关文章

django中HttpRequest请求

视图的第一个参数必须是HttpRequest对象 在视图函数中,接收的request有如下属性: path:一个字符串,表示请求的页面的完整路径,不包含域名. method:一个字符串,表示请求使用的HTTP方法,常用值包括:'GET'.'POST'. 在浏览器中给出地址发出请求采用get方式,如超链接. 在浏览器中点击表单的提交按钮发起请求,如果表单的method设置为post则为post请求. encoding:一个字符串,表示提交的数据的编码方式. 如果为None则表示使用浏览器的默认设置

django中url,静态文件,POST请求的配置

平时使用的是pycharm,所以这篇文章主要也是使用pycharm默认创建的django项目为基础进行讲解.项目目录如下图: 1.URL的配置 当创建好项目后,运行项目就可以看到django默认的页面.那么怎么访问自己创建的页面呢? 因为django是类MVC的开发模式.这里面就涉及到配置URL的问题.创建一个自己的APP(也可以称为一个模块),包含的文件内容如下图: 然后需要在setting.py的文件INSTALLED_APPS中注册新创建的App: 新创建项目的默认url配置如下: fro

Django中请求的生命周期 和 FBV模式和CBV模式

Django的生命周期就是你的 一个请求所发生的整个流程 Django的生命周期内到底发生了什么呢?? 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中. 2. url经过Django中的wsgi,再经过Django的中间件,最后url到过路由映射表,在路由中一条一条进行匹配, 一旦其中一条匹配成功就执行对应的视图函数,后面的路由就不再继续匹配了. 3. 视图函数根据客

【Django】Django中请求的生命周期

Django的请求生命周期是指当用户在浏览器上输入url到用户看到网页的这个时间段内,Django后台所发生的事情 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中. 2. url经过Django中的wsgi,再经过Django的中间件,最后url到过路由映射表,在路由中一条一条进行匹配, 一旦其中一条匹配成功就执行对应的视图函数,后面的路由就不再继续匹配了. 3. 视

Django中如何防范CSRF跨站点请求伪造***

CSRF概念 CSRF跨站点请求伪造(Cross-Site Request Forgery). ***者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了***者所期望的一个操作,比如以你的名义发送邮件.发消息,盗取你的账号,添加系统管理员,甚至于购买商品.虚拟货币转账等. CSRF***原理以及过程 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A: 2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功

1205 CSRF跨站请求与django中的auth模块使用

目录 今日内容 昨日回顾 基于配置文件的编程思想 importlib模块 简单代码实现 跨站请求伪造csrf 1. 钓鱼网站 如何实现 模拟该现象的产生 2. 解决问题 解决 {% csrf_token %} 3. ajax如何解决 方式1 方式2 方式3 4. csrf相关的两个装饰器 1. 使用 2. 两个装饰器在CBV上的异同 django里settings源码剖析 django有两个配置文件 django auth模块 1. 是什么 2. 常用方法 2.1 创建用户 create_use

Django中获取参数(路径,查询,请求头,请求体)

一.通常HTTP协议向服务器传参有几种途径 : 提取URL的特定部分,如/weather/shanghai/2018,可以在服务器端的路由中用正则表达式截取: 查询字符串(query string),形如key1=value1&key2=value2: 请求体(body)中发送的数据,比如表单数据.json.xml: 在http报文的头(header)中. 1.URL中参数的获取 在定义路由URL时,可以使用正则表达式提取参数的方法从URL中获取请求参数,Django会将提取的参数直接传递到视图

Django中的URL配置和模板

Django中的URL配置 : 实例: Python代码   urlpatterns = patterns('', # Example: # (r'^myweb/', include('myweb.foo.urls')), # Uncomment the admin/doc line below and add 'django.contrib.admindocs' # to INSTALLED_APPS to enable admin documentation: # (r'^admin/doc

django中的FBV和CBV

django中请求处理方式有2种:FBV 和 CBV 一.FBV FBV(function base views) 就是在视图里使用函数处理请求. 看代码: urls.py from django.conf.urls import url, include # from django.contrib import admin from mytest import views urlpatterns = [ # url(r'^admin/', admin.site.urls), url(r'^in