Django框架操作数据库的两种方式
2024-08-24 04:33:33
Django操作数据库的前提操作是成功连接数据库,详情见上篇:https://www.cnblogs.com/kristin/p/10791358.html
- 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语句是一致的:
注:QuerySet对象可用.query.__str__()或 .query属性打印执行的sql语句
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' ")
最新文章
- Cas 介绍及使用
- [GE]手动截取当前活动窗口,并且按规则命名(1/2)
- FastReport产品介绍及免费下载地址
- Windows Phone 8 开发初体验
- Visual c++ 2012 软件错误
- 调用Android自带日历功能(日历列表单、添加一个日历事件)
- 问题:Excel在“xxx.xlsx”中发现不可读取的内容。是否恢复此工作薄的内容?【原创】
- 朴素UNIX之-打开历史
- C和Java中数组的定义
- android 布局属性大全---初学者必备
- FZU 2168 防守阵地 I(前n项和的前n项和)
- 热切换Log4j级别配置
- React Native编译器的配置以及基础知识
- Vijos 1404 遭遇战
- Exp1 PC平台逆向破解 20164303 景圣
- day 06 编码and知识点总结
- miniui 使用心得
- <;asp:Button点击查询后,调用js中函数展现加载圈
- ubuntu wifi连接不上或经常断网,重启就好 [ 转]
- Ipython使用