91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在django中使用HttpResponse返回json數據

發布時間:2021-04-16 16:26:41 來源:億速云 閱讀:745 作者:Leah 欄目:開發技術

怎么在django中使用HttpResponse返回json數據?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

from django.http import JsonResponse
def test(request):
 result = {"result": 0, "msg": "執行成功"}
 return return JsonResponse(result)

這種方式返回簡單,但是中文會亂碼

現在改成用HttpResponse來返回,顯示中文成功

from django.http import HttpResponse
import json
def test(request):
 result = {"result": 0, "msg": "執行成功"}
 #json返回為中文
 return HttpResponse(json.dumps(result,ensure_ascii=False),content_type="application/json,charset=utf-8")

補充知識:Django中的HttpResponse和JsonResponse

我們在編寫一些接口函數的時候,經常需要給調用者返回json格式的數據,那么如何返回可直接解析的數據呢?

首先第一種方式:

from django.shortcuts import render
from django.http import HttpResponse,JsonResponse
import json

# Create your views here.

def index(request):
 data={
  'name':'zhangsan',
  'age':18,
 }
 return HttpResponse(json.dumps(data))

這里前臺的返回信息中,返回的Content-Type:是text/html,也就是字符串類型的返回,所以這段返回值并不是一個標準的json數據,是一個長得像json數據的字符串,當然可以通過工具直接轉換為json,不過既然是一個json的接口,那么我們拋出的數據自然是json格式的最好,那如何拋出標準json格式的數據呢?

稍稍修改一丟丟代碼,在HttpResponse中添加content_type類型為json的屬性

from django.shortcuts import render
from django.http import HttpResponse,JsonResponse
import json

# Create your views here.

def index(request):
 data={
  'name':'zhangsan',
  'age':18,
 }
 return HttpResponse(json.dumps(data),content_type="application/json")

現在返回的就是application/json了;

那么Django提供了更方便的方法那就是JsonResponse,它內置幫我們封裝了這個轉換的操作,也就是說我們的接口拋json數據的話那么將HttpResponse替換為JsonResponse就OK了

1.首先先傳dict數據:

from django.shortcuts import render
from django.http import HttpResponse,JsonResponse

# Create your views here.

def index(request):
 data={
  'name':'zhangsan',
  'age':18,
 }
 return JsonResponse(data)

成功收到json數據;

2.接著再試試list數據:

from django.shortcuts import render
from django.http import HttpResponse,JsonResponse

# Create your views here.

def index(request):

 listdata=[1,2,3,4,5]
 return JsonResponse(listdata)

此時查看輸出,卻報錯了:

In order to allow non-dict objects to be serialized set the safe parameter to False.

所以我們如果需要將非dict類型的數據進行JsonResponse傳值,需要將safe參數設置為False

from django.shortcuts import render
from django.http import HttpResponse,JsonResponse

# Create your views here.

def index(request):

 listdata=[1,2,3,4,5]
 return JsonResponse(listdata,safe=False)

此時成功接收到數據。

3.如果我們需要使用JsonResponse傳中文

def func(request):
 data={'姓名':'釋明空'}
 return JsonResponse(data,json_dumps_params={'ensure_ascii':False})

此時需要添加'json_dumps_params={‘ensure_ascii':False}',因為json序列化中文用的是ascii編碼,所以傳到前臺的中文是ascii字符碼,需要這一步轉化為中文。

關于怎么在django中使用HttpResponse返回json數據問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青铜峡市| 阳高县| 吴忠市| 莱阳市| 富阳市| 紫金县| 大埔区| 昌都县| 临湘市| 南召县| 扎赉特旗| 满城县| 买车| 万盛区| 云霄县| 隆尧县| 贺兰县| 绿春县| 浙江省| 天峻县| 海南省| 景东| 宁德市| 静乐县| 资中县| 专栏| 大庆市| 东莞市| 通渭县| 太保市| 乌鲁木齐县| 怀柔区| 盐山县| 化德县| 岫岩| 集贤县| 新巴尔虎右旗| 康定县| 彝良县| 天峨县| 即墨市|