zoukankan      html  css  js  c++  java
  • Django1.11 的serializers序列化model

    开发环境:Django1.11  Python3

    如果想把很多model转化成json格式可以直接这样写:

    from django.views.generic.base import View
    from django.http import HttpResponse
    from django.core import serializers
    
    from goods.models import Goods
    
    
    class GoodsListView(View):
    
        def get(self, request):
            # 取前十个good的model
            goods = Goods.objects.all()[:10]
            # 利用serializers的serialize直接把所有model转化成json格式
            json_data = serializers.serialize('json', goods)  
            # 必须要标明返回的 content_type 是 application/json
            return HttpResponse(json_data, content_type='application/json')

    当然你也可以用Django的 JsonResponse,直接返回Ptyhon字典、列表等(可以dump成json格式)的type

    from django.views.generic.base import View
    from django.http import JsonResponse
    from django.forms.models import model_to_dict
    
    from goods.models import Goods
    
    class GoodsListView(View):
    
        def get(self, request):
            json_list = []
            for good in goods:
                json_data = model_to_dict(good)
                json_list.append(json_data)
            # 这里要把safe设置成False,否则会Django报错,可以点进去看JsonResponse源码
            return JsonResponse(json_list, safe=False)    
  • 相关阅读:
    C#线程使用学习
    C# 线程
    C# Lambda表达式与Linq
    C#聚合运算方法
    责任链模式
    代理模式
    享元模式
    门面模式(外观模式)
    桥梁模式
    设计模式-创建型、结构型、行为型之间的区别
  • 原文地址:https://www.cnblogs.com/wangchaowei/p/7598668.html
Copyright © 2011-2022 走看看