Django(part26)--修改及删除记录
生活随笔
收集整理的這篇文章主要介紹了
Django(part26)--修改及删除记录
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習筆記,僅供參考
文章目錄
- 數據庫的操作(CRUD操作)
- 修改查詢記錄
- 修改單個實體的某些字段值
- 通過QuerySet批量修改對應的全部字段
- 刪除記錄
- 刪除單個對象
- 刪除查詢結果集
數據庫的操作(CRUD操作)
修改查詢記錄
修改單個實體的某些字段值
修改單個實體的某些字段值需要3個步驟:
- 查
- 通過get()得到要修改的實體對象
- 改
- 通過對象.屬性的方式修改數據
- 保存
- 通過對象.save()保存數據
- 舉個例子
在Django shell中敲入如下代碼:
from bookstore import models author = 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)很好!記錄已經被刪除了。
總結
以上是生活随笔為你收集整理的Django(part26)--修改及删除记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django(part25)--字段查询
- 下一篇: Django(part27)--聚合查询