django入门(二)

请求(Request)

HttpRequest对象

当一个页面被请求时,Django会创建一个包含本次请求原信息的HttpRequest对象,并将其自动传递给响应的视图函数。

HttpRequest对象封装了请求报文中的请求行、头部信息、内容主体等。

请求方法

常见的HTTP请求方法包括GET和POST。

GET请求通常用于请求数据,参数通过URL传递。

POST请求通常用于提交数据,参数包含在请求体中。

请求参数

GET请求的参数可以通过request.GET访问,它是一个类似于字典的对象。

POST请求的参数可以通过request.POST访问,它也是一个类似于字典的对象。

如果请求中包含表单数据,Django会将其封装成QueryDict对象,支持获取单个值、多个值以及列表等操作。

请求头

可以通过request.META属性获取请求头中的数据。

request.META是一个字典类型的对象,包含了请求的所有头部信息。

请求体

对于POST请求,请求体通常包含表单数据或JSON数据等。

可以通过request.body获取原始的请求体数据(二进制格式),然后解码并解析。

其他属性

request.scheme:表示请求方案的字符串(通常为http或https)。

request.path_info:表示请求的路径组件(不含域名)。

request.method:表示请求使用的HTTP方法(大写字符串)。

request.user:表示当前登录的用户对象(如果启用了AuthenticationMiddleware中间件)。

响应(Response)

HttpResponse对象

在Django视图中,可以使用HttpResponse对象来构造并返回一个HTTP响应。

HttpResponse对象包含响应的内容、状态码、头部信息等。

设置响应内容

可以通过HttpResponse对象的content参数设置响应体的内容。

可以使用content_type参数指定响应体的数据类型(默认为text/html)。

设置状态码

可以通过HttpResponse对象的status参数设置HTTP响应状态码。

Django提供了多个内置的HTTP状态码,如200(OK)、404(Not Found)等。

设置响应头

可以通过HttpResponse对象的set_header方法或__setitem__方法设置响应头。

JsonResponse

如果需要返回JSON格式的响应数据,可以使用JsonResponse对象。

JsonResponse会自动将Python字典或列表转换为JSON字符串,并设置正确的Content-Type头部。

render

render函数用于渲染HTML模板并返回响应。

它接受一个请求对象、一个模板名称以及一个上下文字典作为参数。

重定向

重定向的概念

重定向是指将客户端的请求从一个URL转发到另一个URL的过程。

在Django中,重定向通常用于在用户完成某个操作后跳转到另一个页面。

HttpResponseRedirect

HttpResponseRedirect是Django中实现重定向的一个类,它继承自HttpResponse

使用HttpResponseRedirect时,需要传入一个URL作为参数。

redirect函数

Django 2.0+版本引入了redirect函数作为HttpResponseRedirect的简写。

redirect函数接受一个URL字符串或URL名称与参数的组合来构造重定向的URL。

反向解析

在使用redirect函数进行重定向时,可以使用Django的URL反向解析功能来生成URL。

反向解析需要指定URL的名称以及相应的参数。

状态码

默认情况下,HttpResponseRedirectredirect函数会返回302状态码(临时重定向)。

如果需要永久重定向,可以使用HttpResponsePermanentRedirect或设置redirect函数的permanent参数为True。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值