> 文章列表 > Day3-Django视图的请求对象和响应对象

Day3-Django视图的请求对象和响应对象

Day3-Django视图的请求对象和响应对象

1.HttpRequest对象

HttpRequest对象定义于django/http/request.py文件中,每当一个请求到来的时候,Django就会创建一个携带有元数据的HttpRequest对象,传递给视图函数的第一个参数

2.HttpRequest对象常用的属性和方法

1)method

    请求时所使用的HTTP方法,主要有GET、POST、PUT等。使用@require_http_methods装饰器指定视图可以接受的方法。例如:只允许接收GET和POST方法时可以这样配置 :

from django.views.decrators.http import require_http_methods@require_http_methods(["GET","POST"])
def index(request):if request.method=='GET':return xxxelse:return xxx

当使用其他方法发出请求的时候则会报405的错误。

在 django/views/decorators/http.py中还有其他的装饰器指定可以接受的方法,例如require_GET只运行GET方法...

2) scheme

    返回请求的协议类型(http或https)

3)path

    返回当前请求页面的路径,但是不包括协议类型和域名

4)GET

    类字典对象,该对象只读,包含GET请求的所有参数。获取参数的方法:1.request.GET[参数名],若参数不存在则会报错.2.request.GET.get(参数名,获取不到的默认值)

5) POST

    也是一个QueryDict类型的类字典对象,保存的是POST请求中提交的表单数据,获取参数的方式和GET类似。

6)FILES

    这个属性只有在上传文件的时候才会用到,也是一个类字典对象.FILES属性中的每个键是<input type="file" name="" />中name的值,每个值是一个对应的Upload-File对象。

7)COOKIES

    包含了请求的cookie信息

8)META

    包含了请求的头部信息,例如:REMOTE_ADDR(客户端IP地址),HTTP_USER_AGENT(浏览器类型),SERVER_PORT(服务器端口号)......

9) user

  标识当前登录用户的AUTH_USER_MODEL实例,其实就是Django用户系统中的User类型。这个属性由AuthenticationMiddleware中间件完成设置,在用户为登录的情况下,即匿名访问,user会被设置为AnonymousUser类型的实例.

 

 

 

旅游知识分享