Django视图,与数据库交互并返回数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django视图,与数据库交互并返回数据相关的知识,希望对你有一定的参考价值。

环境: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正常返回

 

 

以上是关于Django视图,与数据库交互并返回数据的主要内容,如果未能解决你的问题,请参考以下文章

django之视图层

Django之视图

如何在Django视图中使用for循环返回每次迭代[关闭]

django-设计模式

小程序的探索之旅--与Django的数据交互

Django之五模型