Django操做數據庫的前提操做是成功鏈接數據庫,詳情見上篇:http://www.javashuo.com/article/p-akfhzxcx-ep.htmlhtml
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'>
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' ")