Django视图,与数据库交互并返回数据
2017-09-09 16:38 yongchin 阅读(5544) 评论(0) 编辑 收藏 举报环境: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正常返回