1. HttpResponse
- 可以使用
django.http.HttpResponse
来构造响应对象
HttpResponse(content=响应体, content_type=响应体数据MIME类型, status=状态码)
扩展类型:
text/html html
text/plain 普通文本
application/json json
content_type
不指定默认值为:text/html; charset=utf-8
2. 响应头设置: 可以直接将HttpResponse
对象当做字典进行响应头键值对的设置
response = HttpResponse('响应内容')
response['Itcast'] = 'Python' # 自定义响应头Itcast, 值为Python
2. JsonResponse对象
- 帮助我们将数据转换为json字符串,再返回给客户端
- 会设置响应头
Content-Type
为application/json
from django.http import JsonResponse
def resp(request):
return JsonResponse({'name': 'Jack', 'age': 20})
3.JsonResponse可以接收非字典数据,需要指定 safe=False
def resp(request):
return JsonResponse([{'name': 'Jack'},{'name': 'Lucy'}],
3. HttpResponse的子类
Django提供了一系列HttpResponse的子类,可以快速设置状态码
- HttpResponseRedirect 302
- HttpResponseNotModified 304
- HttpResponseBadRequest 400
- HttpResponseNotFound 404
- HttpResponseForbidden 403
- HttpResponseNotAllowed 405
- HttpResponseServerError 500
4. redirect重定向
- 重定向: 不返回具体显示内容给客户端,让客户端重新请求返回的地址,获取内容
from django.shortcuts import redirect
def resp(request):
# 重定向到首页
return redirect('/index')
五、reverse函数
reverse函数: 动态生成URL地址,解决url硬编码维护麻烦的问题。
使用方式:
- 配置url
# 项目的urls.py
urlpatterns = [
# 示例: 应用名可指定为 users
url(r'^', include('users.urls', namespace='应用名')),
]
# 应用的urls.py
urlpatterns = [
# 示例: url配置项名 可指定为 index
url(r'^index$', views.index, name='url配置项名'),
]
2. 动态生成url地址
url = reverse('命名空间:url配置项名称')
# 或者,可以没有命名空间:
url = reverse('url配置项名称')
# 示例1: 生成的url的值为 /index
url = reverse('users:index')
# 示例2: 生成的url的值为 /index
url = reverse('index')