打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python django Request对象

在python django框架中,实现数据通信使用的是Request对象和Response对象。这也是目前前台通讯的主要方式。

当请求一个页面时,Django会建立一个包含请求元数据的 HttpRequest 对象。 当Django 加载对应的视图时,HttpRequest 对象将作为视图函数的第一个参数。每个视图会返回一个HttpResponse 对象。

本文章对HttpRequest对象的API 进行介绍,这些API 定义在django.http 模块中。

HttpRequest 对象

属性

下面除非特别说明,所有属性都认为是只读的。会话(session) 属性是个例外,需要注意。

  • HttpRequest.scheme:一个字符串,表示请求的方案(通常是http 或https)。

  • HttpRequest.body:一个字节字符串,表示原始HTTP 请求的正文。它对于处理非HTML 形式的数据非常有用:二进制图像、XML等。 如果要处理常规的表单数据,应该使用HttpRequest.POST。

  • HttpRequest.path:一个字符串,表示请求的页面的完整路径,不包含域名。例如:''/music/bands/the_beatles/''。

  • HttpRequest.path_info:在某些Web 服务器配置下,主机名后的URL 部分被分成脚本前缀部分和路径信息部分。path_info 属性将始终包含路径信息部分,不论使用的Web 服务器是什么。使用它代替path 可以让代码在测试和开发环境中更容易地切换。

例如,如果应用的WSGIScriptAlias 设置为''/minfo'',那么当path 是''/minfo/music/bands/the_beatles/'' 时path_info 将是''/music/bands/the_beatles/''。

  • HttpRequest.method:一个字符串,表示请求使用的HTTP 方法。必须使用大写。例如:

  • HttpRequest.GET:一个类似于字典的对象,包含HTTP GET 的所有参数。

  • HttpRequest.POST:一个包含所有给定的HTTP POST参数的类字典对象,提供了包含表单数据的请求。POST 请求可以带有空的POST 字典 —— 如果通过HTTP POST 方法请求一个表单但是没有包含表单数据的话。因此,不应该使用if request.POST 来检查使用的是否是POST 方法;应该使用if request.method == ''POST''。

  • HttpRequest.COOKIES:一个标准的Python 字典,包含所有的cookie。键和值都为字符串。

  • HttpRequest.FILES:一个类似于字典的对象,包含所有的上传文件。FILES 中的每个键为<input type=''file'' name='''' /> 中的name。注意,FILES 只有在请求的方法为POST 且提交的<form> 带有enctype=''multipart/form-data'' 的情况下才会包含数据。否则,FILES 将为一个空的类似于字典的对象。

  • HttpRequest.META: 一个标准的Python 字典,包含所有的HTTP 头部。具体的头部信息取决于客户端和服务器,下面是一些示例:

      1. CONTENT_LENGTH —— 请求的正文的长度(是一个字符串)。

      2. CONTENT_TYPE —— 请求的正文的MIME 类型。

      3. HTTP_ACCEPT —— 响应可接收的Content-Type。

      4. HTTP_ACCEPT_ENCODING —— 响应可接收的编码。

      5. HTTP_ACCEPT_LANGUAGE —— 响应可接收的语言。

      6. HTTP_HOST —— 客服端发送的HTTP Host 头部。

      7. HTTP_REFERER —— Referring 页面。

      8. HTTP_USER_AGENT —— 客户端的user-agent 字符串。

      9. QUERY_STRING —— 单个字符串形式的查询字符串(未解析过的形式)。

      10. REMOTE_ADDR —— 客户端的IP 地址。

      11. REMOTE_HOST —— 客户端的主机名。

      12. REMOTE_USER —— 服务器认证后的用户。

      13. REQUEST_METHOD —— 一个字符串,例如''GET'' 或''POST''。

      14. SERVER_NAME —— 服务器的主机名。

      15. SERVER_PORT —— 服务器的端口(是一个字符串)。

从上面可以看到,除CONTENT_LENGTH 和CONTENT_TYPE 之外,请求中的任何HTTP 头部转换为META 的键时,都会将所有字母大写并将连接符替换为下划线最后加上HTTP_ 前缀。所以,一个叫做X-Bender 的头部将转换成META 中的HTTP_X_BENDER 键。

  • HttpRequest.session:一个既可读又可写的类似于字典的对象,表示当前的会话。

request请求中基本属性就这么多,下回整理response属性。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Django的HttpRequest和HttpResponse对象
Django框架-Django视图(views)系统
005Django 表单 | 菜鸟教程
Django表单系统初体验
python测试开发django-98.views视图函数中request参数详解
Django Book 中文版
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服