博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django视图,与数据库交互并返回数据
阅读量:6087 次
发布时间:2019-06-20

本文共 1256 字,大约阅读时间需要 4 分钟。

环境:python 2.7.13  数据库:sqlite3(Django自带)  

在学习Django的时候,遇到了困难。大概就是取到数据库数据后一直不能转成json数据。最后终于自己琢磨解决了。

要点就是在通过Django API与sqlite数据库做交互时,要看清楚返回的对象是什么类型。

 

首先,与数据库做交互,简单来说,无非就是增删改查。首先来说一说“查”,以后会陆续更新其他

 

在网上查了几种比较常用的方法

models.UserInfo.objects.all()
models.UserInfo.objects.all().values('user')    #只取user列
models.UserInfo.objects.all().values_list('id','user')    #取出id和user列,并生成一个列表
models.UserInfo.objects.get(id=1)
models.UserInfo.objects.get(user='yangmv')
 
当采用models.Interface.objects.all()来查询的时候,笔者源代码如下
def returndata(request):    info = models.Interface.objects.all()    isdict = serializers.serialize('json', info)    return HttpResponse(isdict, content_type="application/json")

此时通过打断点可以看到info的类型为QuerySet

此时我们用serializers.serialize('json', info),来解析转换即可,最后通过HttpResponse正常返回

 

当采用models.Interface.objects.get(payload=123456)来查询的时候,笔者源代码如下

def returndata(request):    info = models.Interface.objects.get(payload=123456)    response_data = {}    isdict = model_to_dict(info)    response_data["resultcode"] = 0    response_data["message"] = isdict    return HttpResponse(JsonResponse(response_data), content_type="application/json")

此时通过打断点可以看到info的类型为Interface

此时我们用model_to_dict(info),来解析转换即可,最后通过HttpResponse正常返回

 

 

转载于:https://www.cnblogs.com/semishigure/p/7498608.html

你可能感兴趣的文章
[异常解决] vmware tools 虚拟机 --> 更新/导入wmwera tools菜单变灰,无法导入问题解决...
查看>>
lintcode :最小路径和
查看>>
【ThinkingInC++】8、说明,浅谈数据类型的大小
查看>>
js原生之设计模式开篇介绍
查看>>
Delphi文件操作函数
查看>>
大型网站架构学习笔记
查看>>
SQL Server 2008 geometry 数据类型
查看>>
网页实时聊天之js和jQuery实现ajax长轮询
查看>>
Tuple,Array,Map,文件操作
查看>>
【操作系统】进程间通信(C#)
查看>>
JQuery中动态生成元素的绑定事件(坑死宝宝了)
查看>>
Hibernate的ORM原理和实现
查看>>
ffprobe使用具体解释
查看>>
ecshop 后台【左侧新增菜单】
查看>>
如何设置SVN提交时强制添加注释
查看>>
深入浅出理解 COOKIE MAPPING
查看>>
SharePoint 2013 版本号和相关问题介绍
查看>>
跟我extjs5(03--在项目过程中加载文件)
查看>>
python
查看>>
swift基本用法-for循环遍历,遍历字典,循环生成数组
查看>>