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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM