• Json与Django


    1.json是什么?
    	JSON是一种与语言无关、轻量级的数据交换的格式
    2.json的特点是什么?
    	JSON 是JavaScript 对象表示法(JavaScript Object Notation)。
    	JSON 是存储和交换文本信息的语法。类似 XML。
    	JSON 比 XML 更小、更快,更易解析。
    	
    3.使用Json的格式与解析方便的可以表示一个对象信息:使用中,json有以下三种结构:
                        对象:{"name":"Michael","age":24}
                        数组:[{"name":"Michael","age":24},{"name":"Tom","age":25}]
                        值:{"name":"Michael", "birthday":{"month":8,"day":26}},类似于对象嵌套对象.
    
               对象格式和数组格式可以互相嵌套,一个对象中的一个属性可以是一个集合或数组。
               大括号{}用来描述一组“不同类型的无序键值对集合”(每个键值对可以理解为OOP(面向对象)的属性描述),方括号[]用来描述一组“相同类型的有序数据集合”(可对应OOP的数组)
    	
    4.django返回json数据格式的方式有:Httprespone,Jasonerespones
    
    from django.shortcuts import HttpResponse
    from django.http import JsonResponse
    from django.core import serializers
    from app01.models import Person
    import json
    
    
    def getPerson1(request):
        """用HttpResponse,把字典以json格式传回"""
        if request.method == "GET":
            res = {"status": "错误", "data": "1th", "city": "杭州"}
    	# return HttpResponse(json.dumps(res, ensure_ascii=False)) # 少了content_type,默认application/text
    	return HttpResponse(json.dumps(res, ensure_ascii=False), content_type="application/json,charset=utf-8")
    
    
    def getPerson2(request):
        """用JsonResponse,把字典以json格式传回"""
        if request.method == "GET":
            res = {"status": "错误", "data": "1th", "city": "杭州"}
            # return JsonResponse(res) # 这样中文会乱码
            return JsonResponse(res, json_dumps_params={'ensure_ascii': False})
    
    
    def getPerson3(request):
        """用HttpResponse,serialize序列化对象,把对象以json格式传回"""
        if request.method == "GET":
            res = serializers.serialize("json", Person.objects.all())  # 把所有Person对象序列化
            return HttpResponse(json.dumps(json.loads(res), ensure_ascii=False), content_type="application/json,charset=utf-8")
    
    
    def getPerson4(request):
        """用JsonResponse,serialize序列化对象,把对象以json格式传回"""
        if request.method == "GET":
            res = serializers.serialize("json", Person.objects.all())  # 把所有Person对象序列化
            res = json.loads(res)  # 把字符串转成json格式
            return JsonResponse(res, json_dumps_params={'ensure_ascii': False}, safe=False)
    
    def setPerson(request):
        if request.method == "POST":
            data = json.loads(request.body)  # 转成字典
            Person.objects.create(name=data["name"], age=data["age"])
            # 方式一: JsonResponse返回
           return JsonResponse({"status": 200, "message": "成功"}, json_dumps_params={'ensure_ascii': False}, safe=False)
            # 方式二: HttpResponse返回
            return HttpResponse(json.dumps({"status": 200, "message": "成功"}, ensure_ascii=False), content_type="application/json,charset=utf-8")
    

    代码来自于:wangsl1204
    https://www.cnblogs.com/wangsl1204/p/12655597.html

  • 相关阅读:
    ASP.NET中读取Excel内容,并显示在界面上
    SQL SERVER 的 CLR表值函数
    nowrap要与回车换行符结合才有意义
    何时使用 FILESTREAM?
    case 用在 UPDATE
    查看分区在哪个文件组
    C#里面的随机对象Random
    CLR程序里引用System.Web.dll
    不用写成 if @i=1 OR @i=2 OR ... 这么蠢
    SQL SERVER定期转移海量数据方案
  • 原文地址:https://www.cnblogs.com/Ailewent/p/14290183.html
Copyright © 2020-2023  润新知