一、概述
一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。
响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。
views.py的文件中。
- Django使用请求Request和响应Response来给整个系统传递状态
- 当用户请求一个页面时,Django创建一个包含元数据和请求内容的HttpRequest对象。然后Django加载适当的视图,HttpRequest对象作为视图函数的第一个参数,每个视图负责返回一个HttpResponse对象。
二、一个简单的视图
下面是一个以HTML文档的形式返回当前日期和时间的视图:
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" % now
return HttpResponse(html)
让我们来逐行解释下上面的代码:
-
datetime库。
-
request。
current_datetime,是因为这个名称能够比较准确地反映出它实现的功能。
-
HttpResponse对象。
Django使用请求和响应对象来通过系统传递状态。
当浏览器向服务端请求一个页面时,Django创建一个HttpRequest对象,该对象包含关于请求的元数据。然后,Django加载相应的视图,将这个HttpRequest对象作为第一个参数传递给视图函数。
每个视图负责返回一个HttpResponse对象。
三、HttpRequest对象
1、属性
- HttpRequest.scheme
返回请求协议的名称,通常是http或是https
- HttpRequest.body
返回字节格式的原始HTTP请求内容,通常用于二进制图像、XML等格式的文件
- HttpRequest.path
返回请求的全路径,例如"/music/bands/the_beatles/"
- HttpRequest.method
返回请求调用的HTTP方法,通常是’GET’或是’POST’
- HttpRequest.GET
包含所有给定HTTP GET参数的类似字典的对象。
- HttpRequest.POST
接收表单提交的数据,返回一个类似字典的对象,包含所有给定的HTTP POST参数。
- HttpRequest.COOKIES
包含所有COOKIES的字典,键和值是字符串。
- HttpRequest.FILES
包含所有上传文件的类似字典的对象。文件中的每一个键都是<input type="file" name="" />的名称,文件中的每个值是一个uploadedFile。
- HttpRequest.META
包含所有可用的HTTP头的字典,通常包含以下内容:
CONTENT_LENGTH – 请求体的长度(以字符串形式返回) CONTENT_TYPE – 请求体的 MIME 类型 HTTP_ACCEPT – 响应可以接收的文本类型 HTTP_ACCEPT_ENCODING – 响应可以接收的编码方式 HTTP_ACCEPT_LANGUAGE – 响应可以接收的语言 HTTP_HOST – 客户端发来的HTTP主机头 HTTP_REFERER – 返回引用页 HTTP_USER_AGENT – 客户端的用户代理(字符串格式) QUERY_STRING – 查询字符串,作为独立的(解析)字符串 REMOTE_ADDR – 客户端IP地址 REMOTE_HOST – 客户端主机名 REMOTE_USER – 由Web服务器验证的用户 REQUEST_METHOD – 返回请求方法的字符串,例如"GET"或者"POST". SERVER_NAME – 服务端主机名 SERVER_PORT – 服务端端口(字符串格式)
HttpRequest.path_info
HttpRequest.encoding
HttpRequest.content_type
HttpRequest.content_params
HttpRequest.resolver_match