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