django的model操作匯整詳解
單表操作
增加數(shù)據(jù)
auther_obj = {"auther_name":"崔皓然","auther_age":1}
models.auther.objects.create(
**auther_obj
)
models.auther.objects.create( auther_name="周雍博", auther_age=4 )
obj = models.auther( auther_name="崔洪艷", auther_age=29 ) obj.save()
obj = models.auther( auther_name = "王仙枝", auther_age = "50" ) obj.save()
刪除數(shù)據(jù)
models.auther.objects.filter(auther_name="崔洪艷")[0].delete()
一對多操作
增加數(shù)據(jù)
a_obj = models.auther.objects.get(id=1) models.book.objects.create( book_name = "python課程1", book_price = 12, book_auther = a_obj )
a_obj = models.auther.objects.get(id=5) models.book.objects.create( book_name = "java課程1", book_price = 13, book_auther_id = a_obj.id )
a_obj = models.auther.objects.get(id=2)
book_dict = {
"book_name":"python課程2",
"book_price":14,
"book_auther_id":a_obj.id
}
obj = models.book.objects.create(
**book_dict
)
a_obj = models.auther.objects.get(id=4)
book_dict = {
"book_name":"java課程2",
"book_price":15,
"book_auther":a_obj
}
models.book.objects.create(
**book_dict
)
一對多正向查詢
# 查詢id為2的書的所有作者的信息
obj = models.book.objects.get(id=2)
print(obj.book_auther.auther_name)
print(obj.book_auther.auther_age)
obj = models.book.objects.filter(id=2).values("book_name","book_price","book_auther__id","book_auther__auther_name","book_auther__auther_age")
print(obj)
# 查詢id為2的作者的出版的書
obj = models.book.objects.filter(book_auther_id=2).values("book_name","book_price","book_auther__id","book_auther__auther_name","book_auther__auther_age")
print(obj)
obj = models.book.objects.get(book_auther_id=2)
print(obj.book_auther.auther_age)
print(obj.book_auther.auther_name)
print(obj.book_name)
一對多反向查詢
# 查看出版社出版的書
obj = models.auther.objects.filter(id=2).values("auther_name","auther_age","book__book_name")
print(obj)
obj = models.auther.objects.get(id=2).book_set.values("book_name","book_price","book_auther__id","book_auther__auther_name","book_auther__auther_age")
print(obj)
多對多操作
增加數(shù)據(jù)
b1 = models.book.objects.get(id=1) b2 = models.book.objects.get(id=2) b4 = models.book.objects.get(id=4) b5 = models.book.objects.get(id=5) models.publish.objects.get(id=1).publish_book.add( b1,b2 )
book_list = [b1,b2] models.publish.objects.get(id=2).publish_book.add( *book_list )
更新數(shù)據(jù)
book_list = [b1,b2,b4,b5] models.publish.objects.get(id=1).publish_book.set(book_list)
移除數(shù)據(jù)
models.publish.objects.get(id=1).publish_book.remove(b1) book_list = [b2, ] models.publish.objects.get(id=1).publish_book.remove(*book_list)
正向查詢
obj = models.publish.objects.get(id=1).publish_book.values("book_name","publish__publish_name")
print(obj)
obj = models.publish.objects.filter(id=1).values("publish_name","publish_book__book_name")
print(obj)
反向添加數(shù)據(jù)
p1 = models.publish.objects.get(id=1) p2 = models.publish.objects.get(id=2) p3 = models.publish.objects.get(id=3) b1.publish_set.add(p1,p2,p3)
反向刪除數(shù)據(jù)
b1.publish_set.remove(p1)
反向更新數(shù)據(jù),把remove替換為set就可以了
反向查詢
obj = models.book.objects.get(id=1).publish_set.values("publish_name","publish_book__book_name")
model中多表關系和參數(shù)



多對多



一對一

model操作







以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
python cx_Oracle的基礎使用方法(連接和增刪改查)
這篇文章主要給大家介紹了關于python cx_Oracle的基礎使用方法,其中包括連接、增刪改查等基本操作,并給大家分享了python 連接Oracle 亂碼問題的解決方法,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。2017-11-11
python中將字典形式的數(shù)據(jù)循環(huán)插入Excel
這篇文章主要介紹了python中將字典形式的數(shù)據(jù)循環(huán)插入Excel的方法,需要的朋友可以參考下2018-01-01
python腳本實現(xiàn)音頻m4a格式轉(zhuǎn)成MP3格式的實例代碼
這篇文章主要介紹了python腳本實現(xiàn)音頻m4a格式轉(zhuǎn)成MP3格式的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10
Windows 下python3.8環(huán)境安裝教程圖文詳解
這篇文章主要介紹了Windows 下python3.8環(huán)境安裝教程圖文詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
Anaconda中更新當前環(huán)境的Python版本詳細步驟
Anaconda是一個開源的Python發(fā)行版本,其包含了conda、Python等180多個科學包及其依賴項,下面這篇文章主要給大家介紹了關于Anaconda中更新當前環(huán)境的Python版本的詳細步驟,需要的朋友可以參考下2024-08-08
淺談Python_Openpyxl使用(最全總結(jié))
這篇文章主要介紹了淺談Python_Openpyxl使用(最全總結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09

