1. 程式人生 > >Django檢視,與資料庫互動並返回資料

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