django返回響應對象


Django的視圖必須要返回一個HttpResponse對象(或者其子類對象),不能像flask一樣直接返回字符串。

Django:

return HttpResponse("Hello")

Flask:

return "Hello"

1.HttpResponse:

(1)構造響應對象

HttpResponse(content=響應體,content_type=響應體數據MIME類型,status=狀態碼)

MIME(Multipurpose Internet Mail Extensions)多用途互聯網郵件擴展類型:

  • text/html html
  • text/plain 普通文本
  • application/json json

  • ...

    content_type 不指定默認值為:text/html; charset=utf-8

(2)響應頭設置:為HttpResponse對象設置響應頭

response = HttpResponse('響應內容')

response['id'] = 'abcd'    # 自定義響應頭

 

2.JsonResponse對象

JsonResponse是HttpResponse的子類。

JsonResponse有兩個功能:

(1)將數據轉換為json字符串,再返回給客戶端

(2)自動設置響應頭Content-Type為application/json

示例:

def index(request):
    a = {"id":123,"category":999}
    return JsonResponse(a)

同樣的,JsonResponse也可以接受非字典數據,只需要指定safe=False即可。

def index(request):
    a = "123"  # 列表也可以
    return JsonResponse(a,safe=False)

 

除了JsonResponse,Django還提供了很多子類,可以快遞設置狀態碼。這里就不一一說了。

  • HttpResponseRedirect 302
  • HttpResponseNotModified 304
  • HttpResponseBadRequest 400
  • HttpResponseNotFound 404
  • HttpResponseForbidden 403
  • HttpResponseNotAllowed 405
  • HttpResponseServerError 500


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM