视图函数在处理请求后,必须返回一个 `HttpResponse` 对象,或者 `HttpResponse`对象的子对象。
## 1. HttpResponse
可以通过 **django.http.HttpResponse** 来构造响应对象,并设置 响应头,响应体,响应体类型,状态码等。
```python
HttpResponse(content=响应体, content_type=响应体类型, status=状态码)
```
响应体,状态码等也可以单独设置
```python
response = HttpResponse()
response.content = "响应体"
response.status_code = 200
```
响应头可以把 `HttpResponse` 对象当做字典来进行设置。
```python
response = HttpResponse()
response[响应头key] = 响应头值
```
示例:
```python
def response_view(request):
response = HttpResponse()
response.content = "响应体"
response.status_code = 200
response['name'] = 'xuanli'
return response
```
响应结果
```
Body:响应体
Headers:name →xuanli
```
```python
def response_view2(request):
return HttpResponse(content="响应体", status=200)
```
响应结果
```
Body:响应体
```
## 2. HttpResponse的子类
Django提供了一系列HttpResponse的子类,可以快速设置状态码
```
HttpResponseRedirect 301
HttpResponsePermanentRedirect 302
HttpResponseNotModified 304
HttpResponseBadRequest 400
HttpResponseNotFound 404
HttpResponseForbidden 403
HttpResponseNotAllowed 405
HttpResponseGone 410
HttpResponseServerError 500
```
## 3. JsonResponse
可以使用 `JsonResponse` 来快速构造json类型的响应对象,它可以帮助我们把数据转换为json字符串,并把响应头的 `Content_type` 为 `application/json`
```
from django.http import JsonResponse
def resopnse_json(request):
return JsonResponse({"name": "xuanli", "age": "18"})
```
响应结果
```
{
"age": "18",
"name": "xuanli"
}
```
## 4. 重定向
使用 `redirect` 重定向
```
def redirect_view(request):
return redirect('/demo/index')
```
重定向到 `/demo/index`
- 1.介绍
- 2.工程搭建
- 2.1.环境配置
- 2.2.创建工程
- 2.3.创建子应用
- 2.3.1.pycharm打开项目
- 2.4.创建视图
- 3.基本配置
- 3.1.settings基本配置项
- 3.2.路由配置
- 4.请求响应
- 4.1.request
- 4.2.response
- 4.3.cookie
- 4.4.session
- 5.类视图中间件
- 5.1.类视图
- 5.2中间件
- 6.数据库
- 6.1.数据库配置
- 6.2定义模型类
- 6.3数据库迁移
- 6.4数据库操作
- 6.5查询集
- 6.6模型管理器
- 7.模板表单
- 7.1使用模板
- 7.2模板标签
- 7.3表单
- 8.后台管理
- 8.1Admin
- 8.2自定义模型类样式
- 8.3列表页