一、概述

一个视图函数(类),简称视图,是一个简单的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
其他不常用的属性 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-03-05
  • 2022-12-23
  • 2022-12-23
  • 2021-07-14
  • 2018-11-08
  • 2022-02-08
猜你喜欢
  • 2021-05-22
  • 2019-12-27
  • 2021-11-20
  • 2022-01-15
  • 2021-06-26
  • 2022-12-23
相关资源
相似解决方案