亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

django實現HttpResponse返回json數據為中文

瀏覽:92日期:2024-05-28 15:51:59

Python3讀取寫入json的中文亂碼問題

之前我用django一般用JsonResponse來返回json數據格式

但是發現返回中文的時候會亂碼

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

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

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

from django.http import HttpResponseimport jsondef 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 renderfrom django.http import HttpResponse,JsonResponseimport 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 renderfrom django.http import HttpResponse,JsonResponseimport 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 renderfrom 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 renderfrom 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 renderfrom 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數據為中文就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 免费网站看v片在线观看 | 亚洲欧美人成人让影院 | 国产免费看网站v片不遮挡 国产免费高清 | 视频黄在线观看 | 亚洲精品99久久久久久欧美版 | 日本美女黄色一级片 | 美女mm翘臀后进式动态图 | 国产又黄又潮娇喘视频免费 | 久久国产中文字幕 | 露脸一二三区国语对白 | 亚洲福利一区福利三区 | 九九精品视频在线播放8 | 欧美午夜精品 | 成人在线免费视频播放 | 成年男女男精品免费视频网站 | 999精品 | 日韩欧美在线综合 | 成人国产精品999视频 | 91久久精品国产免费一区 | 特a级毛片 | 2022日本卡一卡二新区 | aaa一级毛片 | 亚洲精品第一国产综合高清 | 一级一级一级毛片免费毛片 | 国产亚洲美女精品久久久久 | 真人一级毛片免费观看视频 | 精品国产第一国产综合精品 | 欧美一区二区激情三区 | 91po国产在线高清福利 | 久久久久18| 国产区在线观看视频 | 久久er热在这里只有精品66 | 日本欧美国产精品 | 一区二区网站在线观看 | 成人国产网站v片免费观看 成人国产视频在线观看 | 多女多p多杂交视频在线观看 | 精品国产第一国产综合精品gif | 亚洲黑人巨大videos0 | 亚洲午夜一级毛片 | 草草草在线观看 | 久久综合精品国产一区二区三区无 |