zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    ubuntu18.04 安装 jdk
    MySQL集群(PXC)入门
    Synchronized 详解
    Java多线程之内存可见性
    MySQL8.0新特性
    vue配置域名访问
    debain8 安装mysql8
    idea 激活步骤
    spring boot 设置tomcat post参数限制
    人脸识别技术全面总结:从传统方法到深度学习[转载自机器之心]
  • 原文地址:https://www.cnblogs.com/wjw1014/p/8848065.html
Copyright © 2011-2022 走看看