django-WSGIRequest对象(视图函数request参数详解)

WSGIRequest对象

django接收到http请求之后, 会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象, 并且作为视图函数的第一个参数传递给视图函数, 也就是reques参数

通过该对象我们可以找到客户端上传的所有信息

该对象完成路径

django.core.handlers.wsgi.WGSIRequest

导入方式:

from django.core.handlers.wsgi import WSGIRequest

django-WSGIRequest对象(视图函数request参数详解)_第1张图片

WSGIRequest对象常用属性

WSGIRequest对象上大部分的属性都是只读的, 因为这些属性从客户端传上来的, 没必要做任何修改

常用属性详解:

  • path: 请求服务器的完整路径, 但不包括域名和参数, request.path
  • method: 代表当前请求的http的方法, 比如: GET, POST
  • GET: django.http.request.QueryDict对象, 操作类似字典, 这个属性是get请求的参数
  • POST: django.http.request.QueryDict对象, 操作类似字典, 这个属性包括了所有POST上传来的参数
  • FILES: django.http.req.QueryDict对象, 这个属性包括了所有上传的文件
  • COOKIES: 一个标准的python字典, 包含了所有的cookie, 键值对都是字符串类型
  • session: 一个类似于字典的对象, 用来操作服务器的session
  • META: 存储的客服端发送上来的所有header信息

META属性

django-WSGIRequest对象(视图函数request参数详解)_第2张图片
META常用属性
- CONTENT_LENGTH: 请求的正文的长度(是一个字符串)
- CONTENT_TYPE: 请求的正文的MIME类型
- HTTP_ACCEPT: 响应课结束后肚饿Context-Type
- HTTP_ACCEPT_LANGUAGE: 响应可接收的语言
- HTTP_ACCEPT_ENCODING: 响应可接收的编码
- HTTP_HOST:客户端发送的HOST值
- HTTP_REFETRT: 在访问这个页面上一个页面的url
- QUERY_STRING: 单个字符串形式的查询字符串(未解析过的形式)
- REMOTE_ADDR: 客户端的IP地址, 如果服务器做反向代理或者负载均衡, 那么返回值是127.0.0.1,这时使用HTTP_X_FORWARDFD_FOR来获取
- django-WSGIRequest对象(视图函数request参数详解)_第3张图片
- REMOTE_HOST: 客户端的主机名
- REQUEST_METHOD: 请求方法: 一个字符串类似于GET
- SERVER_NAME: 服务器域名
- SERVER_PORT: 服务器端口号面试一个字符串类型

WSGIRequest对象常用方法

  • is_secure(): 是否是采用https协议
  • is_ajax(): 是否采用ajax发送的请求,原理就是判断请求头中是否存在X-Requested-With: XMLHtppRequest
  • get_host(): 服务器的域名, 如果在访问时还有端口号, 那就会加上端口号
  • get_full_path(): 返回完整的path, 如果有查询字符串,还会加上查询字符串
  • get_raw_uri(): 获取请求的完整url

你可能感兴趣的:(python_django)