日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2023/12/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django(part26)--修改及删除记录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

學(xué)習(xí)筆記,僅供參考


文章目錄

    • 數(shù)據(jù)庫的操作(CRUD操作)
      • 修改查詢記錄
        • 修改單個實體的某些字段值
        • 通過QuerySet批量修改對應(yīng)的全部字段
      • 刪除記錄
        • 刪除單個對象
        • 刪除查詢結(jié)果集



數(shù)據(jù)庫的操作(CRUD操作)


修改查詢記錄


修改單個實體的某些字段值


修改單個實體的某些字段值需要3個步驟:

    • 通過get()得到要修改的實體對象
    • 通過對象.屬性的方式修改數(shù)據(jù)
  • 保存
    • 通過對象.save()保存數(shù)據(jù)

  • 舉個例子

在Django shell中敲入如下代碼:

from bookstore import models author = models.Author.objects.get(id=1) author.age = 19 author.save()

再查看bookstore_author數(shù)據(jù)表中的數(shù)據(jù):

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)

我們發(fā)現(xiàn),山羊的age已經(jīng)被改為19歲。


通過QuerySet批量修改對應(yīng)的全部字段


我們可以直接調(diào)用查詢結(jié)果集QuerySet的update(屬性=值)方法實現(xiàn)批量修改

  • 舉個例子

我們首先看一下bookstore_book數(shù)據(jù)表:

mysql> select * from bookstore_book; +----+-------------------+----------------+ | id | title | pub | +----+-------------------+----------------+ | 1 | Djangoweb開發(fā)實戰(zhàn) | 清華大學(xué)出版社 | | 2 | python | 機(jī)械工業(yè)出版社 | | 3 | R | 人民郵電出版社 | | 4 | 數(shù)據(jù)處理 | 清華大學(xué)出版社 | | 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數(shù)據(jù)表:

mysql> select * from bookstore_book; +----+-------------------+----------------+ | id | title | pub | +----+-------------------+----------------+ | 1 | Djangoweb開發(fā)實戰(zhàn) | 清華大學(xué)出版社 | | 2 | python | 機(jī)械工業(yè)出版社 | | 3 | R | 人民郵電出版社 | | 4 | 數(shù)據(jù)處理 | 清華大學(xué)出版社 | | 5 | 算法 | 人民郵電出版社 | | 6 | 小黃 | 黑山羊出版社 | | 7 | 大白 | 黑山羊出版社 | +----+-------------------+----------------+ 7 rows in set (0.00 sec)

可以看到bookstore_book數(shù)據(jù)表已經(jīng)進(jìn)行了更新。


刪除記錄


刪除記錄是指刪除數(shù)據(jù)庫中的一條或多條記錄,刪除單個Entry對象或刪除一個查詢結(jié)果集(QuerySet)中的全部對象都是調(diào)用delete()方法


刪除單個對象


刪除單個對象的步驟:

  • 查找查詢結(jié)果對應(yīng)的一個數(shù)據(jù)對象
  • 調(diào)用這個數(shù)據(jù)對象的delete()方法實現(xiàn)刪除

  • 舉個例子

在Django shell 中敲入如下代碼:

try:book = models.Book.objects.get(title="大白")book.delete() except:print(刪除失敗)

查看bookstore_book數(shù)據(jù)表:

mysql> select * from bookstore_book; +----+-------------------+----------------+ | id | title | pub | +----+-------------------+----------------+ | 1 | Djangoweb開發(fā)實戰(zhàn) | 清華大學(xué)出版社 | | 2 | python | 機(jī)械工業(yè)出版社 | | 3 | R | 人民郵電出版社 | | 4 | 數(shù)據(jù)處理 | 清華大學(xué)出版社 | | 5 | 算法 | 人民郵電出版社 | | 6 | 小黃 | 黑山羊出版社 | +----+-------------------+----------------+ 6 rows in set (0.00 sec)

很好,已經(jīng)被刪除了。


刪除查詢結(jié)果集


刪除單個對象的步驟:

  • 查找查詢結(jié)果集中滿足條件的全部QuerySet查詢集合對象
  • 調(diào)用查詢集合對象的delete()方法實現(xiàn)刪除

  • 舉個例子

在Django shell 中敲入如下代碼:

auths = models.Author.objects.filter(id__gt=2) auths.delete()

查看bookstore_author數(shù)據(jù)表:

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)

很好!記錄已經(jīng)被刪除了。

總結(jié)

以上是生活随笔為你收集整理的Django(part26)--修改及删除记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。