本文摘自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 对象:
阅读剩余部分
相关阅读 >>
为什么c语言运行比Python快
Python为什么要用class
Python对mysql数据库进行操作的实例详解
Python基础操作汇总
pycharm如何切换成中文
Python3怎么安装库
详解分类评价指标和回归评价指标以及Python代码实现
Python的idle怎么运行
Python中关于正则表达式非贪婪以及多行匹配功能详解
Python怎么改shell界面的背景
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » 数据库数据转换成JSON格式实例详解