創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
按需求定制開發(fā)可以根據(jù)自己的需求進行定制,成都網(wǎng)站設計、做網(wǎng)站構(gòu)思過程中功能建設理應排到主要部位公司成都網(wǎng)站設計、做網(wǎng)站的運用實際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實際意義這篇文章主要介紹django刪除數(shù)據(jù)庫數(shù)據(jù)的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
在用django操作數(shù)據(jù)庫之前,我們先需要知道什么是orm。
什么是ORM?
ORM(對象關系映射)指用面向?qū)ο蟮姆椒ㄌ幚頂?shù)據(jù)庫中的創(chuàng)建表以及數(shù)據(jù)的增刪改查等操作。
簡而言之,就是將數(shù)據(jù)庫的一張表當作一個類,數(shù)據(jù)庫中的每一條記錄當作一個對象。在Django中定義一個類,就是在數(shù)據(jù)庫中創(chuàng)建一張表格。在Django中實例化一個類的對象,就是在數(shù)據(jù)庫中增加了一條記錄。在Django中刪除一個對象,就是在數(shù)據(jù)庫中刪除了一條記錄。在DJango中更改一個對象的屬性,就是在數(shù)據(jù)庫中修改一條記錄的值。在django中遍歷查詢對象的屬性值,就是在數(shù)據(jù)庫中查詢記錄的值。
下面是幾條django的views視圖函數(shù)中的命令語句。
一,增(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關聯(lián)的所有關聯(lián)信息book.author.clear() #清空與book中id=1 關聯(lián)的所有數(shù)據(jù)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 關聯(lián)的所有數(shù)據(jù)
三,改(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(): 查詢所有結(jié)果 # <3>get(**kwargs):返回與所給篩選條件相匹配的對象,返回結(jié)果有且只有一個,如果符合篩選條件的對象超過一個或者沒有都會 拋出錯誤。#-----------下面的方法都是對查詢的結(jié)果再進行處理:比如 objects.filter.values()-------- # <4>values(*field): 返回一個ValueQuerySet——一個特殊的QuerySet,運行后得到的并不是一系列 model的實例化對象, 而是一個可迭代的字典序列 # <5>exclude(**kwargs): 它包含了與所給篩選條件不匹配的對象 # <6>order_by(*field): 對查詢結(jié)果排序 # <7>reverse(): 對查詢結(jié)果反向排序 # <8>distinct(): 從返回結(jié)果中剔除重復紀錄 # <9>values_list(*field): 它與values()非常相似,它返回的是一個元組序列,values返回的是一個字典序列 # <10>count(): 返回數(shù)據(jù)庫中匹配查詢(QuerySet)的對象數(shù)量。 # <11>first(): 返回第一條記錄 # <12>last(): 返回最后一條記錄 # <13>exists(): 如果QuerySet包含數(shù)據(jù),就返回True,否則返回False。
以上是django刪除數(shù)據(jù)庫數(shù)據(jù)的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道!
本文名稱:django刪除數(shù)據(jù)庫數(shù)據(jù)的方法-創(chuàng)新互聯(lián)
當前鏈接:http://jinyejixie.com/article30/djsjpo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供Google、App開發(fā)、網(wǎng)站制作、手機網(wǎng)站建設、網(wǎng)站導航、網(wǎng)頁設計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容