学习笔记,仅供参考 文章目录 数据库的操作(CRUD操作) 修改查询记录 修改单个实体的某些字段值 通过QuerySet批量修改对应的全部字段 删除记录
学习笔记,仅供参考
文章目录
- 数据库的操作(CRUD操作)
- 修改查询记录
- 修改单个实体的某些字段值
- 通过QuerySet批量修改对应的全部字段
- 删除记录
- 删除单个对象
- 删除查询结果集
数据库的操作(CRUD操作)
修改查询记录
修改单个实体的某些字段值
修改单个实体的某些字段值需要3个步骤:
- 查
- 通过get()得到要修改的实体对象
- 改
- 通过对象.属性的方式修改数据
- 保存
- 通过对象.save()保存数据
- 举个例子
在Django shell中敲入如下代码:
from bookstore import modelsauthor = models.Author.objects.get(id=1)
author.age = 19
author.save()
再查看bookstore_author数据表中的数据:
mysql> select * from bookstore_author;+----+--------+-----+----------------------+
| id | name | age | email |
+----+--------+-----+----------------------+
| 1 | 山羊 | 19 | goatbishop@gamil.com |
| 2 | 小黄 | 10 | 1033794241@qq.com |
| 3 | 小黑 | 12 | xiaohei@gmail.com |
| 4 | 老山羊 | 25 | darkgoat@gmail.com |
+----+--------+-----+----------------------+
4 rows in set (0.00 sec)
我们发现,山羊的age已经被改为19岁。
通过QuerySet批量修改对应的全部字段
我们可以直接调用查询结果集QuerySet的update(属性=值)方法实现批量修改
- 举个例子
我们首先看一下bookstore_book数据表:
mysql> select * from bookstore_book;+----+-------------------+----------------+
| id | title | pub |
+----+-------------------+----------------+
| 1 | Djangoweb开发实战 | 清华大学出版社 |
| 2 | python | 机械工业出版社 |
| 3 | R | 人民邮电出版社 |
| 4 | 数据处理 | 清华大学出版社 |
| 5 | 算法 | 人民邮电出版社 |
| 6 | 小黄 | 山羊出版社 |
| 7 | 大白 | 山羊出版社 |
+----+-------------------+----------------+
7 rows in set (0.00 sec)
在Django shell中敲入如下代码:
# 将id大于5的所有图书的出版社改为黑山羊出版社In [22]: books = models.Book.objects.filter(id__gt=5)
...: books.update(pub="黑山羊出版社")
...:
Out[22]: 2
我们再看一下bookstore_book数据表:
mysql> select * from bookstore_book;+----+-------------------+----------------+
| id | title | pub |
+----+-------------------+----------------+
| 1 | Djangoweb开发实战 | 清华大学出版社 |
| 2 | python | 机械工业出版社 |
| 3 | R | 人民邮电出版社 |
| 4 | 数据处理 | 清华大学出版社 |
| 5 | 算法 | 人民邮电出版社 |
| 6 | 小黄 | 黑山羊出版社 |
| 7 | 大白 | 黑山羊出版社 |
+----+-------------------+----------------+
7 rows in set (0.00 sec)
可以看到bookstore_book数据表已经进行了更新。
删除记录
删除记录是指删除数据库中的一条或多条记录,删除单个Entry对象或删除一个查询结果集(QuerySet)中的全部对象都是调用delete()方法
删除单个对象
删除单个对象的步骤:
- 查找查询结果对应的一个数据对象
- 调用这个数据对象的delete()方法实现删除
- 举个例子
在Django shell 中敲入如下代码:
try:book = models.Book.objects.get(title="大白")
book.delete()
except:
print(删除失败)
查看bookstore_book数据表:
mysql> select * from bookstore_book;+----+-------------------+----------------+
| id | title | pub |
+----+-------------------+----------------+
| 1 | Djangoweb开发实战 | 清华大学出版社 |
| 2 | python | 机械工业出版社 |
| 3 | R | 人民邮电出版社 |
| 4 | 数据处理 | 清华大学出版社 |
| 5 | 算法 | 人民邮电出版社 |
| 6 | 小黄 | 黑山羊出版社 |
+----+-------------------+----------------+
6 rows in set (0.00 sec)
很好,已经被删除了。
删除查询结果集
删除单个对象的步骤:
- 查找查询结果集中满足条件的全部QuerySet查询集合对象
- 调用查询集合对象的delete()方法实现删除
- 举个例子
在Django shell 中敲入如下代码:
auths = models.Author.objects.filter(id__gt=2)auths.delete()
查看bookstore_author数据表:
mysql> select * from bookstore_author;+----+------+-----+----------------------+
| id | name | age | email |
+----+------+-----+----------------------+
| 1 | 山羊 | 19 | goatbishop@gamil.com |
| 2 | 小黄 | 10 | 1033794241@qq.com |
+----+------+-----+----------------------+
2 rows in set (0.00 sec)
很好!记录已经被删除了。