【模型】Django数据库的数据转成Json返回【原创】

目录

 

 

参考

结论

方法

一、QuerySet数据

二、Model类数据


 

参考

https://blog.csdn.net/yup1212/article/details/83035955

https://blog.windrunner.me/python/web/django-rest-framework.html

https://blog.csdn.net/shirukai/article/details/81086242

 

结论

QuerySet数据:建议使用序列化类的形式(rest_framework),如果不想安装rest_framework的话,那么可以使用list和values的方法,但时间字段格式无法自定义输出

Model类数据:建议使用自定义to_dict方法

 

方法

分两种数据进行讨论:

 

QuerySet数据——比如说filter、exclude、all、values

  • 序列化类(rest_framework)- 推荐
  • serializers方法
  • list和values结合的方法 - 只适用于values

 

Model类数据——比如说get、first

  • model_to_dict方法
  • __dict__方法
  • 自定义to_dict方法 - 推荐

 

一、QuerySet数据

有三种方式来处理数据

一种是序列化类的方式,这个是基于rest_framework,所以需要安装rest_framework

  • 优点:输出格式很规范,可以处理时间字段的格式,可以控制输出的字段
  • 缺点:需要安装rest_framework,相对较为繁琐

 

另一种是使用serializers方法:

  • 优点:容易实现,无需安装依赖
  • 缺点:输出格式不规范,不能直接处理时间字段的格式,不能处理values方法

 

由于serializers方法返回的格式不是很规范,而且时间字段并没有做处理,使用序列化类的化,可以很好的处理时间字段,可以以我们想要的时间格式来输出,所以更推荐使用序列化类的方式

 

如果是values方法的话,也有一种很简单的方法,使用list直接转即可

  • 优点:容易实现,输出格式很规范,可以控制输出的字段
  • 缺点:不能直接处理时间字段的格式

 

1. 序列化类方式

Model里面定义的方法为:

class AlarmEvent(models.Model):
    ...
    
    @staticmethod
    def get_all():
        """
            获取所有的记录(倒序)
            :return:
            """
        res = AlarmEvent.objects.all().order_by('-id&
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值