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")