• python Django API返回json格式数据


     1 from django.shortcuts import HttpResponse
     2 from django.http import JsonResponse
     3 from django.core import serializers
     4 from app01.models import Person
     5 import json
     6 
     7 
     8 def getPerson1(request):
     9     """用HttpResponse,把字典以json格式传回"""
    10     if request.method == "GET":
    11         res = {"status": "错误", "data": "1th", "city": "杭州"}
    12         # return HttpResponse(json.dumps(res, ensure_ascii=False)) # 少了content_type,默认application/text
    13         return HttpResponse(json.dumps(res, ensure_ascii=False), content_type="application/json,charset=utf-8")
    14 
    15 
    16 def getPerson2(request):
    17     """用JsonResponse,把字典以json格式传回"""
    18     if request.method == "GET":
    19         res = {"status": "错误", "data": "1th", "city": "杭州"}
    20         # return JsonResponse(res) # 这样中文会乱码
    21         return JsonResponse(res, json_dumps_params={'ensure_ascii': False})
    22 
    23 
    24 def getPerson3(request):
    25     """用HttpResponse,serialize序列化对象,把对象以json格式传回"""
    26     if request.method == "GET":
    27         res = serializers.serialize("json", Person.objects.all())  # 把所有Person对象序列化
    28         return HttpResponse(json.dumps(json.loads(res), ensure_ascii=False), content_type="application/json,charset=utf-8")
    29 
    30 
    31 def getPerson4(request):
    32     """用JsonResponse,serialize序列化对象,把对象以json格式传回"""
    33     if request.method == "GET":
    34         res = serializers.serialize("json", Person.objects.all())  # 把所有Person对象序列化
    35         res = json.loads(res)  # 把字符串转成json格式
    36         return JsonResponse(res, json_dumps_params={'ensure_ascii': False}, safe=False)
    37 
    38 
    39 def setPerson(request):
    40     if request.method == "POST":
    41         data = json.loads(request.body)  # 转成字典
    42         Person.objects.create(name=data["name"], age=data["age"])
    43         # 方式一: JsonResponse返回
    44         return JsonResponse({"status": 200, "message": "成功"}, json_dumps_params={'ensure_ascii': False}, safe=False)
    45         # 方式二: HttpResponse返回
    46         return HttpResponse(json.dumps({"status": 200, "message": "成功"}, ensure_ascii=False), content_type="application/json,charset=utf-8")
  • 相关阅读:
    【转】给ExtJS的Grid增加两行tbar
    AWK使用手册
    SED单行脚本快速参考(Unix 流编辑器)
    Linux的用户和用户组管理
    Linux下中文man帮助安装。
    关于TLBB 客户端UI界面修改几个定义了解
    正则表达式30分钟入门教程
    VimDiff技巧
    CentOS 更换网易源
    Mysql数据库搭建Linux
  • 原文地址:https://www.cnblogs.com/wangsl1204/p/12655597.html
Copyright © 2020-2023  润新知