您好,登錄后才能下訂單哦!
這篇文章主要介紹django刪除數據庫數據的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
在用django操作數據庫之前,我們先需要知道什么是orm。
什么是ORM?
ORM(對象關系映射)指用面向對象的方法處理數據庫中的創建表以及數據的增刪改查等操作。
簡而言之,就是將數據庫的一張表當作一個類,數據庫中的每一條記錄當作一個對象。在Django中定義一個類,就是在數據庫中創建一張表格。在Django中實例化一個類的對象,就是在數據庫中增加了一條記錄。在Django中刪除一個對象,就是在數據庫中刪除了一條記錄。在DJango中更改一個對象的屬性,就是在數據庫中修改一條記錄的值。在django中遍歷查詢對象的屬性值,就是在數據庫中查詢記錄的值。
下面是幾條django的views視圖函數中的命令語句。
一,增(create,save)
from app01.models import * #create方式一: Author.objects.create(name='Alvin') #create方式二: Author.objects.create(**{"name":"alex"}) #save方式一: author=Author(name="alvin") author.save() #save方式二: author=Author() author.name="alvin" author.save()
注意,增加時create+save兩個組合,create是增的動作,save是加的動作,缺一個都不中。
二,刪(delete)
>>> Book.objects.filter(id=1).delete() (3, {'app01.Book_authors': 2, 'app01.Book': 1})
如果是多對多的關系: remove()和clear()方法:
#正向book = models.Book.objects.filter(id=1)#刪除第三張表中和女孩1關聯的所有關聯信息book.author.clear() #清空與book中id=1 關聯的所有數據book.author.remove(2) #可以為idbook.author.remove(*[1,2,3,4]) #可以為列表,前面加*#反向author = models.Author.objects.filter(id=1)
author.book_set.clear() #清空與boy中id=1 關聯的所有數據
三,改(update和save)
#---------------- update方法直接設定對應屬性---------------- models.Book.objects.filter(id=3).update(title="PHP") ##sql: ##UPDATE "app01_book" SET "title" = 'PHP' WHERE "app01_book"."id" = 3; args=('PHP', 3) #--------------- save方法會將所有屬性重新設定一遍,效率低----------- obj=models.Book.objects.filter(id=3)[0] obj.title="Python" obj.save()# SELECT "app01_book"."id", "app01_book"."title", "app01_book"."price", # "app01_book"."color", "app01_book"."page_num", # "app01_book"."publisher_id" FROM "app01_book" WHERE "app01_book"."id" = 3 LIMIT 1; # # UPDATE "app01_book" SET "title" = 'Python', "price" = 3333, "color" = 'red', "page_num" = 556,# "publisher_id" = 1 WHERE "app01_book"."id" = 3;
四,查(update和save)
# 查詢相關API:# <1>filter(**kwargs): 它包含了與所給篩選條件相匹配的對象 # <2>all(): 查詢所有結果 # <3>get(**kwargs):返回與所給篩選條件相匹配的對象,返回結果有且只有一個,如果符合篩選條件的對象超過一個或者沒有都會 拋出錯誤。#-----------下面的方法都是對查詢的結果再進行處理:比如 objects.filter.values()-------- # <4>values(*field): 返回一個ValueQuerySet——一個特殊的QuerySet,運行后得到的并不是一系列 model的實例化對象, 而是一個可迭代的字典序列 # <5>exclude(**kwargs): 它包含了與所給篩選條件不匹配的對象 # <6>order_by(*field): 對查詢結果排序 # <7>reverse(): 對查詢結果反向排序 # <8>distinct(): 從返回結果中剔除重復紀錄 # <9>values_list(*field): 它與values()非常相似,它返回的是一個元組序列,values返回的是一個字典序列 # <10>count(): 返回數據庫中匹配查詢(QuerySet)的對象數量。 # <11>first(): 返回第一條記錄 # <12>last(): 返回最后一條記錄 # <13>exists(): 如果QuerySet包含數據,就返回True,否則返回False。
以上是django刪除數據庫數據的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。