怎么在Django中返回json数据

  介绍

今天就跟大家聊聊有关怎么在Django中返回json数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

<强>方法一:使用Python的json包

得到django.shortcuts  import  HttpResponse   import  json      def  testjson(请求):   ,data=https://www.yisu.com/zixun/{   “patient_name”:“张三”,   “年龄”:“25”,   “patient_id”:“19000347”,   “诊断”:“上呼吸道感染的,   }   返回HttpResponse (json.dumps(数据)

我们暂且把数据看成是从数据库取出来的数据,使用浏览器访问一下testjson

怎么在Django中返回json数据“> <br/> </p> <p>这不是乱码,这是中文在内存中的二进制表现形式而已,使用json的转换工具可以看到中文。</p> <p>我们看一下响应头响应头,其中的<代码> - type> </代码是<代码> text/html> </代码,我明明传的是json啊,怎么会变成字符串类型了吗?这是因为我们没有告诉浏览器,我们要传一个json数据,那么,怎么告诉浏览器呢? </p> <pre类= def  testjson(请求):   ,data=https://www.yisu.com/zixun/{   “patient_name”:“张三”,   “年龄”:“25”,   “patient_id”:“19000347”,   “诊断”:“上呼吸道感染的,   }   返回HttpResponse (json.dumps(数据),content_type=application/json)

再访问网页:

怎么在Django中返回json数据

怎么在Django中返回json数据“> <br/> </p> <p>现在是传输json了,在预览中可以正常显示出来。</p> <p> <强>方法二:使用JsonResponse进行传输</强> </p> <pre类= def  testjson(请求):   ,data=https://www.yisu.com/zixun/{   “patient_name”:“张三”,   “年龄”:“25”,   “patient_id”:“19000347”,   “诊断”:“上呼吸道感染的,   }   返回JsonResponse(数据)

访问网页:

怎么在Django中返回json数据

怎么在Django中返回json数据“> <br/> </p> <p> <img src=

<强> JsonResponse的源码

class  JsonResponse (HttpResponse):   “才能”;“   An 才能HTTP  response  class  that  consumes  data 用be  serialized 用JSON。      :才能param 数据:,Data 用be  dumped  into  json只By  default  only “dict的对象   ,,断开连接,allowed 用be  passed  due 用a  security  flaw  before  EcmaScript  5只看到   ”,,,“安全”,parameter  for  more 信息。   :才能param 编码器:,Should  be  a  json  encoder 类只Defaults    ”,,“django.core.serializers.json.DjangoJSONEncoder’”。   :才能param 安全:,Controls  if  only “dict ' ', objects  may  be 序列化只违约   ,,用' '真实的' '。   :才能param  json_dumps_params:, A  dictionary  of  kwargs  passed 用json.dumps ()。   “才能”;“      def  __init__(才能自我,,数据,编码器=DjangoJSONEncoder,安全=True,   ,,,,,,,,json_dumps_params=没有,,* * kwargs):   ,,,if  safe 以及not  isinstance(数据,dict类型):   ,,,,,raise  TypeError (   ,,,,,,,& # 39;拷贝order 用allow  non-dict  objects 用be  serialized  set 从而& # 39;   ,,,,,,,& # 39;safe  parameter 用假强生# 39;   ,,,,,)   ,,,if  json_dumps_params  is 没有:   ,,,,,json_dumps_params =, {}   ,,,kwargs.setdefault (& # 39; content_type& # 39;,, & # 39; application/json # 39;)   ,,,data =, json.dumps(数据,cls=编码器,* * json_dumps_params)   ,,,超级(). __init__(内容=数据,* * kwargs)

其内部也是通过json。转储来把数据转换为JSON的,其还可以转换为列表类型。我们再来改一下testjson

def  testjson(请求):   listdata =,(“张三,,,“25“,,,19000347,,,,上呼吸道感染“)   return  JsonResponse (listdata)

怎么在Django中返回json数据