学习笔记——Django项目的删除数据、查询数据(filter、get、exclude)
2022-09-30
删除数据:
方式一:
打开pycharm,进入虚拟环境,进入shell环境(python manage.py shell)。
删除数据,接上面的笔记——“学习笔记——Django项目的新增数据、修改数据”
导入模块:
from book.models import BookInfo1
查找到要删除的数据:
book = BookInfo1.objects.get(id = 3)
进行删除操作:
book.delete()
-----------------------
方式二:
同理导入模块,找到并删除的操作
BookInfo1.objects.filter(id = 5).delete()
查询是否删除,可以先打开终端,进入MySQL(mysql -uroot -p),输入密码,进入存放表的数据库,先查看表的信息存储,进行删除操作后,再次查看表中记录中指定的记录是否删除成功(select * from book_bookinfo1)
-----------------------------------------------------
在shell中查询数据(基础查询):
1、查询指定的数据
导入模块后,进行查询
BookInfo1.objects.get(id = 1)
说明:在shell中执行该语句,返回的是这个表中的一个对象。
如果查询的数据在存储表中不存在,那么会出现异常,因此此处的查询可以增加一个“try...except”捕获异常的结构。例:
try: BookInfo1.objects.get(id = 100) except Exception as e: print(e)
捕获到的异常为:
可增加系统功能的强健性。
2、查询表中的所有记录
导入模块
BookInfo1.objects.all()
说明:执行该语句,返回的包含所有对象的一个列表。这里的“每一个对象”指的就是插入的“每一条记录”。
3、查询表里面记录的个数:
导入模块
BookInfo1.objects.count()
或者是
BookInfo1.objects.all().count()
输出的结果是一样的。
-----------------------------
filter、get、exclude查询
说明:
filter: 查询返回的是一个结果集列表,列表内的个数可以为0/1/n
get: 查询返回的结果是一个对象
exclude: 查询除了符合条件之外的记录,返回的是一个列表。
(1)查询编号为1的图书
BookInfo1.objects.get(id=1)
注:objects相当与“增删改查”的代理。
也可以为:
BookInfo1.objects.filter(id__exact = 1)
注:其中“字段名__检索要求”是标准写法。
(2)查询书籍名称中包含“小”的图书
BookInfo1.objects.filter(name__contains = "小")
(3)查询数据名称末尾是“传”的图书
BookInfo1.objects.filter(name__endswith = "传")
注:此处是两个下划线。
(4)查询书籍名称为空的记录
BookInfo1.objects.filter(name__isnull = True)
注:此处判断为空的结果是一个boolean类型的值。
(5)查询编号为1,3,5的图书
BookInfo1.objects.filter(id__in = [1,3,5])
(6)查询大于编号3的图书
BookInfo1.objects.filter(id__gt = 3)
说明:gt:是大于;gte:是大于等于;lt:是小于;lte:是小于等于。
(7)查询除了编号为3的图书
BookInfo1.objects.exclude(id__exact = 1)
(8)查询出版时间在2000年的图书
BookInfo1.objects.filter(pub_date__year = "2000")
注:判断“年”时,要使用的是“__year”
(9)查询出版时间在“2000-01-01”之后的图书
BookInfo1.objects.filter(pub_date__gt = "2000-01-01")
相关文章
- 微软:将很快发布 Windows 11 Beta 预览版,Win10 21H1 Beta 频道可直接升级
- 微软 Windows11 Build 22000.71 更新(KB5004252)发布:全新“亚克力”菜单,大量 Bug 修复
- 微软发布Windows 11 全新 Emoji 表情系统:采用 Fluent 流畅设计 + 3D 形象
- 跨设备、支持Windows 10/11!微软发布Windows 365:三大优势
- 7月累积更新已修复3个Windows 10严重问题:包括游戏性能等
- 微软 Windows Terminal 1.10 预览版发布,支持任务栏后台常驻
- 微软讲解 Windows 11 设计改进:让你更接近你所热爱的一切和生活
- 想要尝鲜Windows 11预览版?教你升级
- 微软 Windows 10 Build 19043.1110 (KB5004237)正式发布:强制更新,修复性能/任务栏模糊问题
- 微软发Windows 10更新 修复多个高危漏洞:这些版本将被弃
- 微软 Windows 11 Cloud PC 云电脑早期图片曝光:“开始”菜单按钮还在左下角
- 微软 Windows 10“开始”菜单中出现Windows 11 广告推荐
- 收藏学习:100个Pandas常用的函数
- 微软 Windows 11 内置硬盘健康提醒,以及更多设置推荐项
- 微软:WinUI 3的重心仍是经典Win32应用 目前无UWP计划
- 微软:Windows 11 预览版 Beta 将在 7 月底发布
- 被用户疯狂吐槽后:微软重新在Windows 11找回“刷新”按钮
- 微软:想要直升 Windows11,需运行 Windows10 20H1 或更新版本
- 微软 Windows 11 Build 22000.65 更新(KB5004745)发布:新增搜索框,任务栏支持多屏显示
- 网友吐槽 Windows 11 预览版 22000 部分界面无圆角,无新文件资源管理器,微软回应:会推出越来越多功能和