最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django實現(xiàn)HttpResponse返回json數(shù)據(jù)為中文

 更新時間:2020年03月27日 10:19:21   作者:打鹵  
這篇文章主要介紹了django實現(xiàn)HttpResponse返回json數(shù)據(jù)為中文,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

之前我用django一般用JsonResponse來返回json數(shù)據(jù)格式

但是發(fā)現(xiàn)返回中文的時候會亂碼

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

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

現(xiàn)在改成用HttpResponse來返回,顯示中文成功

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

補充知識:Django中的HttpResponse和JsonResponse

我們在編寫一些接口函數(shù)的時候,經(jīng)常需要給調(diào)用者返回json格式的數(shù)據(jù),那么如何返回可直接解析的數(shù)據(jù)呢?

首先第一種方式:

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數(shù)據(jù),是一個長得像json數(shù)據(jù)的字符串,當然可以通過工具直接轉(zhuǎn)換為json,不過既然是一個json的接口,那么我們拋出的數(shù)據(jù)自然是json格式的最好,那如何拋出標準json格式的數(shù)據(jù)呢?

稍稍修改一丟丟代碼,在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")

現(xiàn)在返回的就是application/json了;

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

1.首先先傳dict數(shù)據(jù):

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)

成功收到j(luò)son數(shù)據(jù);

2.接著再試試list數(shù)據(jù):

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.

所以我們?nèi)绻枰獙⒎莇ict類型的數(shù)據(jù)進行JsonResponse傳值,需要將safe參數(shù)設(shè)置為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)

此時成功接收到數(shù)據(jù)。

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

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

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

以上這篇django實現(xiàn)HttpResponse返回json數(shù)據(jù)為中文就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python讀取Excel的方法實例分析

    Python讀取Excel的方法實例分析

    這篇文章主要介紹了Python讀取Excel的方法,實例分析了Python操作Excel文件的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-07-07
  • python利用裝飾器進行運算的實例分析

    python利用裝飾器進行運算的實例分析

    本文主要是通過使用Python的裝飾器來做一個運算的實例,來給大家詳細介紹下Python的裝飾器,非常的實用,有需要的小伙伴可以參考下。
    2015-08-08
  • Pysvn 使用指南

    Pysvn 使用指南

    本文主要介紹了Pysvn 使用指南,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • Python中如何創(chuàng)建和運行異步任務(wù)詳解

    Python中如何創(chuàng)建和運行異步任務(wù)詳解

    這篇文章主要為大家介紹了Python中如何創(chuàng)建和運行異步任務(wù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • python從子線程中獲得返回值的方法

    python從子線程中獲得返回值的方法

    今天小編就為大家分享一篇python從子線程中獲得返回值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 使用Python編排Dockerfile的代碼詳解

    使用Python編排Dockerfile的代碼詳解

    docker compose 是 docker 的容器編排工具,它是基于 YAML 配置,YAML 是一種配置文件格式,支持傳遞環(huán)境變量,但是對于復(fù)雜的容器編排顯得力不從心,于是我便開發(fā)這個程序,可以像寫程序一樣編排 docker,感興趣的的朋友可以參考下
    2024-08-08
  • python使用新浪微博api上傳圖片到微博示例

    python使用新浪微博api上傳圖片到微博示例

    本文介紹了Python使用新浪微博官方api發(fā)表帶圖的微博(模擬post)的功能,大家參考使用吧
    2014-01-01
  • Python中Iterator迭代器的使用雜談

    Python中Iterator迭代器的使用雜談

    Python中的迭代器意義不僅是在iter函數(shù)上的運用,更是一種處理可迭代對象的迭代器模式,這里我們來簡單聊聊Python中Iterator迭代器的使用雜談:
    2016-06-06
  • python?tkinter中的Frame控件用法詳解

    python?tkinter中的Frame控件用法詳解

    Tkinter中的Frame控件是一個用于組織和管理其他控件的容器,它可以將其他控件放置在自己內(nèi)部,用于創(chuàng)建更復(fù)雜的用戶界面,要創(chuàng)建一個Frame控件,可以使用Tkinter的Frame類,所以本文就通過一個簡單的示例給大家介紹一下
    2023-08-08
  • Python數(shù)據(jù)分析應(yīng)用之Matplotlib數(shù)據(jù)可視化詳情

    Python數(shù)據(jù)分析應(yīng)用之Matplotlib數(shù)據(jù)可視化詳情

    這篇文章主要介紹了Python數(shù)據(jù)分析應(yīng)用之Matplotlib數(shù)據(jù)可視化詳情,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06

最新評論

汉沽区| 六安市| 营口市| 和平县| 社旗县| 绥德县| 武宁县| 高邮市| 永吉县| 友谊县| 宜兴市| 永福县| 卓尼县| 普兰店市| 潢川县| 奉新县| 贺州市| 玉门市| 定襄县| 巍山| 桐乡市| 沙雅县| 宜兰市| 浮山县| 永顺县| 九台市| 白水县| 江西省| 赣榆县| 剑阁县| 定远县| 美姑县| 肥西县| 商南县| 恩平市| 扶沟县| 永吉县| 封开县| 延寿县| 桦南县| 定陶县|