Django(part26)--修改及删除记录(django 删除)

网友投稿 402 2022-08-31


Django(part26)--修改及删除记录(django 删除)

学习笔记,仅供参考

文章目录

​​数据库的操作(CRUD操作)​​

​​修改查询记录​​

​​修改单个实体的某些字段值​​​​通过QuerySet批量修改对应的全部字段​​

​​删除记录​​

​​删除单个对象​​​​删除查询结果集​​

数据库的操作(CRUD操作)

修改查询记录

修改单个实体的某些字段值

修改单个实体的某些字段值需要3个步骤:

通过​​get()​​得到要修改的实体对象

通过​​对象.属性​​的方式修改数据

保存

通过​​对象.save()​​保存数据

举个例子

在Django shell中敲入如下代码:

from bookstore import modelsauthor = models.Author.objects.get(id=1)author.age = 19author.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)

很好!记录已经被删除了。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Django(part34)--一对多映射(django映射数据库)
下一篇:spring scheduled单线程和多线程使用过程中的大坑
相关文章

 发表评论

暂时没有评论,来抢沙发吧~