視圖函數在處理請求后,必須返回一個 `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列表頁