django响应

1. HttpResponse

  1. 可以使用 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对象

  1. 帮助我们将数据转换为json字符串,再返回给客户端
  2. 会设置响应头 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硬编码维护麻烦的问题。

使用方式:

  1. 配置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')
发布了61 篇原创文章 · 获赞 11 · 访问量 6497

猜你喜欢

转载自blog.csdn.net/weixin_41449756/article/details/89058582