Django框架操做數據庫的兩種方式

Django操做數據庫的前提操做是成功鏈接數據庫,詳情見上篇:http://www.javashuo.com/article/p-akfhzxcx-ep.htmlhtml

  • Django查詢數據庫的方式一
from django.db import connection
from django.http import HttpResponse
def research(request):
    cursor = connection.cursor()
    cursor.execute("SELECT * FROM `user` WHERE `status` = '3' AND `created` <= '1557331200' AND `finished` >= '1557417599'")
    sql = cursor.fetchall()
    return HttpResponse(sql)
    
# shell模式打印輸出結果的類型,print(type(sql)),結果爲<class 'tuple'>  
  • Django查詢數據庫的方式二
from django.db import connection
from quicktool.models import User
from django.http import HttpResponse
def research(request):
    sql = User.objects.all().filter(status=3).filter(created__lte=1557331200).filter(finished__gte=1557417599).values_list()
    #或sql = User.objects.all().filter(status=3).filter(created__lte=1557331200).filter(finished__gte=1557417599).values()
    return HttpResponse(sql)
    
# values_list()迭代時返回元組tuple;values()迭代時返回字典dict

  

上述兩種方式查詢的sql語句是一致的:sql

注:QuerySet對象可用.query.__str__()或 .query屬性打印執行的sql語句shell

sql = User.objects.all().filter(status=3).filter(created__lte=1557331200).filter(finished__gte=1557417599)
cursor.execute("SELECT * FROM `user` WHERE `status` = '3' AND `created` <= '1557331200' AND `finished` >= '1557417599' ")
相關文章
相關標籤/搜索