初步学习Django-第四篇:views.PY文件详解

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:

原文地址:https://www.cnblogs.com/hcyjjp/p/10354476.html

时间: 2024-07-31 09:03:53

初步学习Django-第四篇:views.PY文件详解的相关文章

views.py文件详解

1.http请求中产生的两个核心对象 http请求:HttpRequesthttp响应: HttpResponse 所在位置: django.http 1.HttpRequest:HttpRequest对象属性 1.1 path请求页面的全路径,不包括域名,例如,"/music/bands/the_beatles/"" 1.2 method请求中使用的HTTP方法的字符串表示,全大写表示.例如:if request.method == 'GET': do_something(

初步学习Django-第三篇:URLS.PY文件详解

该文章转至博科:https://www.cnblogs.com/luchuangao/p/7113667.html urls.py:URL分发器(路由配置文件)URL配置(URLconf)就像是Django所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表.你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码.URL的加载是从配置文件中开始. 1.urlpatterns的两种形式: 没有前缀的情况,使用的列表(推荐方式)url

url.py文件详解

urls.py:URL分发器(路由配置文件)URL配置(URLconf)就像是Django所支撑网站的目录,它本质是URL模式以及要为该URL模式调用的视图函数治安的映射表.我们就是以这种方式告诉django,对于这个URL调用这段代码,对于那个URL调用那段代码.URL的加载是从配置文件中开始. 1.urlpatterns的两种形式:没有前缀的情况,使用的列表(推荐方式) urlpatters = [ url(r'^hello/$',views.hello)] 有前缀的情况,使用pattern

linux命令学习笔记(31): /etc/group文件详解

Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户组管理时相关的文件. linux /etc/group文件是有关于系统 管理员对用户和用户组管理的文件,linux用户组的所有信息都存放在/etc/group文件中.具有某种共同特征的用户集 合起来就是用户组(Group).用户组(Group)配置文件主要有 /etc/group和/etc/gshadow,其中/etc/gshadow是 /etc/group的加密信息文件. 将

python学习记录第四篇--数据库

只要用到MySQLdb,使用时请先安装MySQLdb,百度上可以下载! #coding=utf-8'''@author: 使用python操作MySQL数据库'''import MySQLdb#import MySQLdb.cursorsconn=MySQLdb.connect(user='root',passwd='root') #connect共三个值,user,passwd,host,无密码且连接本地数据库时,可以都为空.cur=conn.cursor() #创建游标,使用游标进行数据库操

J2EE学习篇之--JQuery技术详解

前面我们讲解了的J2EE的技术都是服务端的技术,下面我们来看一下前端的一些开发技术,这一篇我们来看一下jQuery技术 简介: jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery是继prototype之后又一个优秀的Javascript框架.其宗旨是--WRITE LESS,DO MORE,写更少的代码,做更多的事情. 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏

J2EE学习篇之--Struts2技术详解

前面说到了Struts1的相关知识,下面来说一下Struts2的相关知识,我们知道现在Struts2使用的比Struts1多,Struts2已经替代Struts1成为主流的框架了... 摘要 Struts2是在WebWork2基础发展而来的.和struts1一样, Struts2也属于MVC框架.不过有一点大家需要注意的是:尽管Struts2和Struts1在名字上的差别不是很大,但Struts2和struts1在代码编写风格上几乎是不一样的.那么既然有了struts1,为何还要推出struts

JAVA学习篇--javaweb之Filter详解

在DRP项目中,多次提到了Filter,它解决了字符集的统一设置以及统一控制简单WebCache,从中我们可以体会到,它给我们带来的好处不仅仅是减少代码量这么简单,它的出现避免了我们每个页面重复的编写相同的代码,减少了我们的工作量,而且给维护带来了极大的便利,那么它是如何实现统一管理的呢?既然它能统一管理某些重复的操作,那么它和AOP有什么关系呢? Filter简介 ServletAPI中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过

JavaWeb学习(三)----JSP内置对象详解

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4065790.html 联系方式:[email protected] [系列]JSP学习系列文章:(持续更新) JavaWeb学习(一)----JSP简介及入门(含Tomcat的使用) JavaWeb学习(二)----JSP脚本元素.指令元素.动作元素 JavaWeb学习(三)----JSP内置对象