• Django 将数据库查出的 QuerySet 对象转换为 json 字符串


    通过Django查询出MySQL数据库的数据,并将查询出的QuerySet 对象转化成 json 字符串。

    写这个例子的作用主要是用来为手机端提供接口用,记录一下,以后 说不准 肯定能用到!

    ----------------  这是一条人工分界线----------------------

    1.  假如只查询其中一条数据的对象转换为 json 字符串

    例如:

    row = models.User.objects.get(id=1)
    

    直接利用python提供的json包,在django model的定义中增加一个方法toJSON,利用django model 能访问 _meta.fields 得到相关属性而得到,例子如下:

    class Category(models.Model):
        autoid = models.AutoField(primary_key=True)
        email=models.CharField(max_length=150,blank=False)
        comtype=models.CharField(max_length=20,blank=False)
        catname=models.CharField(max_length=150,blank=False)  
         
        def __unicode__(self):
            return '%s' % (self.catname)
         
        def toJSON(self):
            import json
            return json.dumps(dict([(attr, getattr(self, attr)) for attr in [f.name for f in self._meta.fields]]))
    

     则在转换的时候,使用方法为:

    row=models.Category.objects.get(autoid=23)    
    print row.toJSON()
    

      

    ---------------------   不要慌,这又是一条人工分界线   ------------------------------

    2. 假如按条件查询出一串数据,通过上面的方式进行json操作则会报错,就要修改。

      利用 from django.core import serializers 的方法实现,关键代码:

    from django.core import serializers
    data = serializers.serialize("json", SomeModel.objects.all())
    data1 = serializers.serialize("json", SomeModel.objects.filter(myfield1=myvalue))
    

     案例:

    data = serializers.serialize('json', models.User.objects.filter(id=1))
    print(data)

    》》》 [{"model": "app01.user", "pk": 1, "fields": {"username": "wangjiawei", "password": "123456", "netname": "u5c1au672au53d6u540d"}}]

     

    成功!!! 记录一下!  

    ********************   别翻了,我是有底线的   ****************************

    【版权声明】本博文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处!
    【重要说明】本文为本菜鸟的学习记录,论点和观点仅代表个人不代表此技术的真理,目的是学习和可能成为向别人分享的经验,因此有错误会虚心接受改正,但不代表此时博文无误!
    【博客园地址】JayveeWong: http://www.cnblogs.com/wjw1014
    【CSDN地址】JayveeWong: https://blog.csdn.net/weixin_42776111
    【Gitee地址】Jayvee:https://gitee.com/wjw1014
    【GitHub地址】Jayvee:https://github.com/wjw1014
  • 相关阅读:
    apollo-springboot 整合使用
    axon 过滤存储哪些事件
    springtools 解决lombok
    mylog 自定义注解打印 logger
    java高级应用:线程池全面解析
    监控 Java 线程池运行状态
    线程池获当前使用的活跃线程数
    JVM调优总结 -Xms -Xmx -Xmn -Xss(1)
    java高并发之线程池
    Nginx 网络事件
  • 原文地址:https://www.cnblogs.com/wjw1014/p/8848065.html
Copyright © 2020-2023  润新知