本文摘自php中文网,作者零下一度,侵删。
最近打算搞一个自动化运维平台,所以在看Django的知识。 在实际项目开发中,遇到一个小问题:前后端发生数据交互主流采用的是JSON。前端传数据到服务器端比较简单,稍微麻烦的是服务器端传JSON到前端。
首先数据是从数据库中获取的,Django默认使用的是ORM技术,但是作为一个运维人员,我其实比较反感这类抽象出来的API。因为尽管它对于开发人员来说,将数据库的表抽象成了一个对象,便于开发,不需要写SQL语句,但是这也是后期程序造成性能瓶颈的罪魁祸首(再做一次故障处理时,遇到一条70几行的SQL语句。。。。。),另外对于一个运维人员来说,纯SQL是基本能力,再次去学习ORM的语法,无形中又增加了学习成本。
不管怎么说,这次的主题是将从数据库获取数据转换成JSON,下面会将用ORM和SQL两种方式都拿出来分享。
1.采用Django Model层,ORM技术 转换成JSON格式
1 | 1 def getdata(request):2 # 使用ORM3 # all()返回的是QuerySet 数据类型;values()返回的是ValuesQuerySet 数据类型4 data = models.VM.objects.values( 'id' , 'ip' , 'host' , 'username' )5 data = serializers.serialize( "json" , tomcats)6 return JsonResponse(list(data), safe=False)
|
2.完全弃用Django Model层,纯SQL 转换成JSON格式
1 | 1 def getdata(request):2 # 使用SQL3 with connection.cursor() as cursor:4 cursor.execute( 'select id, machine, tomcathome, ipaddress, description from tomcatData' )5 data = dictfetchall(cursor)6 return JsonResponse(data, safe=False, json_dumps_params={ 'ensure_ascii' : False})
|
JsonResponse 对象:
阅读剩余部分
相关阅读 >>
Python中re正则模块详解
Python中如何求列表list的平均数
Python实现有序字典的详细介绍(附代码)
Python中流程控制语句的详细介绍
Python设置环境变量的基本步骤
Python线程下信号量与有边界的信号量的介绍
Python的pandas中常用函数的总结
简单易学的Python语言,黑客也喜欢她
Python的调试:logging和pdb(实例解析二)
Python中执行存储过程及获取返回值的方法介绍
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » 数据库数据转换成JSON格式实例详解