企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
视图函数在处理请求后,必须返回一个 `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`