跳至主要內容

视图-请求对象HttpRequest

刘春龙原创...大约 2 分钟PythonDjango教程文档

每一个用户请求在到达视图函数的同时,Django 会创建一个 HttpRequest 对象并把这个对象当做第一个参数传给要调用的 views 方法。HttpRequest 对象包含了请求的元数据,比如(本次请求所涉及的用户浏览器端数据、服务器端数据等),在 views 里可以通过 request 对象来调用相应的属性

所有视图函数的第一个参数都是 HttpRequest 实例

官网:https://docs.djangoproject.com/zh-hans/4.1/ref/request-response/#django.http.HttpRequestopen in new window

属性(除非另有说明,否则所有属性均应视为只读):

  • HttpRequest.scheme:

    表示请求使用的协议(http 或 https)

  • HttpRequest.body:

    原始 HTTP 请求主体,类型是字节串。处理数据一些非 html 表单的数据类型很有用,譬如:二进制图像,XML 等;

    • 取 form 表单数据,请使用 HttpRequest.POST
    • 取 url 中的参数,用 HttpRequest.GET
  • HttpRequest.path:

    表示请求页面的完整路径的字符串,不包括 scheme 和域名。

    例: "/music/bands/the_beatles/"

  • HttpRequest.method:

    表示请求中使用的 HTTP 方法的字符串,是大写的。例如:

    if request.method == 'GET':
      do_something()
    elif request.method == 'POST':
      do_something_else()
    
  • HttpRequest.encoding:

    表示当前编码的字符串,用于解码表单提交数据(或者 None,表示使用该 DEFAULT_CHARSET 设置)。

    可以设置此属性来更改访问表单数据时使用的编码,修改后,后续的属性访问(例如读取 GET 或 POST)将使用新 encoding 值。

  • HttpRequest.content_type:

    表示请求的 MIME 类型的字符串,从 CONTENT_TYPE 解析 。

  • HttpRequest.content_params:

    包含在 CONTENT_TYPE 标题中的键/值参数字典。

  • HttpRequest.GET:

    包含所有给定的 HTTP GET 参数的类似字典的对象。请参阅 QueryDict 下面的文档。

  • HttpRequest.POST:

    包含所有给定 HTTP POST 参数的类似字典的对象,前提是请求包含表单数据。请参阅 QueryDict 文档。POST 不包含文件信息,文件信息请见 FILES。

  • HttpRequest.COOKIES:

    包含所有 Cookie 的字典,键和值是字符串。

  • HttpRequest.FILES:

    包含所有上传文件的类似字典的对象

  • HttpRequest.META:

    包含所有可用 HTTP meta 的字典

中间件设置的属性:

Django 的 contrib 应用程序中包含的一些中间件在请求中设置了属性。如果在请求中看不到该属性,请确保使用了相应的中间件类 MIDDLEWARE

  • HttpRequest.session:

    来自 SessionMiddleware:代表当前会话的可读写字典对象。

  • HttpRequest.site:

    来自 CurrentSiteMiddleware: 代表当前网站的实例 Site 或 RequestSite 返回 get_current_site()

  • HttpRequest.user:

    来自 AuthenticationMiddleware:AUTH_USER_MODEL 代表当前登录用户的实例

上次编辑于:
贡献者: 刘春龙
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.7