http请求中产生的两个核心对象:

http请求:HttpRequest
http响应:HttpResponse

所在位置:from django.http import HttpRequest,HttpResponse

1、HttpRequest:
HttpRequest对象的属性:

Attribute         Description      
path      

请求页面的全路径,不包括域名—例如,

“/music/bands/the_beatles/”

method  

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

if request.method == 'GET':

do_something()

elif request.method == 'POST':

do_something_else()                                   

GET 包含所有HTTP GET参数的类字典对象。参见QueryDict文档。
POST  

包含所有HTTP POST参数的类字典对象。参见QueryDict文档。

服务器收到空的POST请求的情况也是有可能发生的。也就是说,表单form通过HTTP POST方法提交

请求,但是表单中可以没有数据。不能使用语句if request.POST来判断是否使用HTTP POST方法;

应该使用if request.method == 'POST' (参见本表的method属性)。

注意:POST不包括file-upload信息。参见FILES属性。

REQUEST

这个属性再django1.9里面已经被移除掉了。

COOKIES 包含所有cookies的标准python字典对象。Keys和values都是字符串。
FILES

包含所有上传文件的类字典对象。FILES中的每个Key都是<input type="file" name=""/>标签中

name属性的值。FILES中的每个value同时也是一个标准Python字典对象,包含下面三个Keys:

  • filename:上传文件名,用Python字符串表示
  • content-type:上传文件的Content type
  • content:上传文件的原始内容

注意:只有在请求方法是POST,并且请求页面中<form>有enctype="multipart/form-data"属性时FILES才拥有数据。否则,FILES是一个空字典。

META  

包含所有可用HTTP头部信息的字典。例如:

  • CONTENT_LENGTH
  • CONTENT_TYPE
  • QUERY_STRING:未解析的原始查询字符串
  • REMOTE_ADDR:客户端IP地址
  • REMOTE_HOST:客户端主机名
  • SERVER_NAME:服务器主机名
  • SERVER_PORT:服务器端口

META中这些头加上前缀HTTP_最为Key,例如:

HTTP_ACCEPT_ENCODING

HTTP_ACCEPT_LANGUAGE

HTTP_HOST:客户发送的HTTP主机头信息

HTTP_REFERER:referring页

HTTP_USER_AGENT:客户端的user-agent字符串

HTTP_X_BENDER:X-Bender头信息

user

是一个django.contrib.auth.models.User对象,代表当前登录的用户。如果访问用户当前没有登录,user将被初始化为django.contrib.auth.models.AnonymousUser的实例。你可以通过user的is_authenticated()方法来辨别用户是否登录;

if request.user.is_authenticated():

#Do something for logged-in users.

else:

#Do something for anonymous users.

只有激活Django中的AuthenticationMiddleware时该属性才可用

session 唯一可读写的属性,代表当前会话的字典对象。只有激活Django中的session支持时该属性才可用。
raw_post_data 原始HTTP POST数据。未解析过。高级处理时会有用处。

HttpRequest对象的方法(部分):

get_full_path()   返回包含查询字符串的请求路径。例如,"/music/bands/the_beatles/?print=true"  

QueryDict对象(部分)

get() 如果key对应多个value,get()返回最后一个value。

在HttpRequest对象中,GET和POST属性时django.http.QueryDict类的实例。

2、HttpResponse:

Django之views.py详解的更多相关文章

  1. Django之urls.py详解

    urls.py:URL分发器(路由配置文件)URL配置(URLconf)就像是Django所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表.你就是以这种方式告诉Dj ...

  2. Django框架 之 querySet详解

    Django框架 之 querySet详解 浏览目录 可切片 可迭代 惰性查询 缓存机制 exists()与iterator()方法 QuerySet 可切片 使用Python 的切片语法来限制查询集 ...

  3. Django url配置 正则表达式详解 分组命名匹配 命名URL 别名 和URL反向解析 命名空间模式

    Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11版本 ...

  4. Django学习笔记之Django Form表单详解

    知识预览 构建一个表单 在Django 中构建一个表单 Django Form 类详解 使用表单模板 回到顶部 构建一个表单 假设你想在你的网站上创建一个简单的表单,以获得用户的名字.你需要类似这样的 ...

  5. django用户投票系统详解

    投票系统之详解 1.创建项目(mysite)与应用(polls) django-admin.py startproject mysite python manage.py startapp polls ...

  6. django中models field详解

    本文参考自:django官方文档models/field 在model中添加字段的格式一般为:  field_name = field_type(**field_options) 一  field o ...

  7. DJango模型Meta选项详解

    Django模型之Meta选项详解 MEAT选项 Django模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.而可用的选项大致包含以下几类 abstract 这个属性是定义当 ...

  8. django中request对象详解(转载)

    django中的request对象详解 Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将  HttpRequest对象  作为第一个参数传入该函数. ...

  9. django中的模型详解-1

    在说明django模型之前,首先来说明一下django的生命周期,也就是一个请求到达django是如何处理的.[暂时不包含中间件] 浏览器的请求---->到达django中的urls中找到对应的 ...

随机推荐

  1. php图片添加文字水印方法汇总

    方法一: <?php header("content-type:text/html;charset=utf-8"); //指定图片路径 $src = "img/a. ...

  2. mongodb启动时报错ERROR: child process failed, exited with error number 1

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb安装部署步骤(图文详解) Ubuntu16.04下Mongodb安装部署步骤(图文详解) root@zhouls-virtual- ...

  3. UVa 10450 - World Cup Noise

    题目:构造一个01串,使得当中的1不相邻,问长度为n的串有多少中. 分析:数学,递推数列. 设长度为n的串有n个.则有递推关系:f(n)= f(n-1)+ f(n-2): 长度为n的结束可能是0或者1 ...

  4. Java精选笔记_集合【Map(映射)接口】

    Map(映射)接口 简介 该集合存储键值对,一对一对的往里存,并且键是唯一的.要保证map集合中键的唯一性. 从Map集合中访问元素时,只要指定了Key,就能找到对应的Value. 关键字是以后用于检 ...

  5. js实现卡号每四位空格分隔

    window.onload =function() { document.getElementById("input_num").oninput =function() { })( ...

  6. Android中SurfaceView用法示例

    SurfaceView在游戏开发中有着举足轻重的地位,它对于画面的控制有着更大的自由度(不像View要用handler来更新,关于View的),但这方面的参考资料并不是太多,能找到的例子都有点喧宾夺主 ...

  7. 09python之运算

    运算 算数运算: 两个数相除,得到商和余数的数组的内置方法  数据.__divmod__()  场景 数据库共99条数据,每个页面10条数据,需要多少个页面  >>> a = 98  ...

  8. Nginx(一)-- 初体验

    1.概念 Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器. Nginx提供基本http服务,可以作 ...

  9. 面试题思考:Servlet 生命周期、工作原理

    Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁. init():在Servlet的生命周期中,仅执行一次init()方法.它是在服务器装入Ser ...

  10. C、C++编程入口,常见的编程题

    1.设计一个从5个数中取最小数和最大数的程序. 2.#include<stdio.h> 3.int min(int a[],int i); 4.int max(int a[],int i) ...