get查詢
get查詢的是單一結果,如果不存在會丟擲模型類名.does.not.exist
異常。
bookinfo.objects.get(id=
1)
all查詢
all查詢的是多個結果。返回型別是乙個查詢集,可迭代。
bookinfo.objects.
all(
)
count查詢
count查詢的是結果的數量
bookinfo.objects.count(
)
filter查詢
filter過濾出多個結果。過濾條件的表示式:屬性名稱__比較運算子=值
bookinfo.objects.
filter
(id__exact=
1)
bookinfo.objects.
filter
(name__contains=
'傳')
bookinfo.objects.
filter
(name__startswith=
'部')
bookinfo.objects.
filter
(name__endswith=
'部')
注:以上運算子嚴格區分大小寫,在運算子錢加上i
不區分大小寫,比如iexact。
bookinfo.objects.
filter
(name__isnull=
true
)
#查詢id是否包含在1 3 5內的物件
bookinfo.objects.
filter
(id__in=[1
,3,5
])
bookinfo.objects.
filter
(id__gt=
3)
bookinfo.objects.
filter
(id__gte=
3)
bookinfo.objects.
filter
(id__lt=
3)
bookinfo.objects.
filter
(id__lte=
3)
bookinfo.objects.exclude(id=
3)
bookinfo.objects.
filter
(pub_date__year=
1980
)
bookinfo.objects.
filter
(bread__lte=f(
'bcommet'
))
django還支援對f()物件使用算數運算
bookinfo.objects.
filter
(bread__lte=f(
'bcommet')*
2)bookinfo.objects.
filter
(bpub_date__lt=f(
'bpub_date'
)+ timedelta(days=1)
)
在查詢中需要進行or(或)查詢,使用q物件;基本語法:
或:q(欄位__運算子=)|q(欄位__運算子=)
與:q(欄位__運算子=)&q(欄位__運算子=)
非:~q(欄位__運算子=)
bookinfo.objects.
filter
(q(pk__lt=6)
| q(bcommet__gt=10)
)
from django.db.models import max
bookinfo.objects.aggregate(max(
'bpub_date'
))
一對多查詢,語法:例項名(一方模型類物件).反向查詢的模型類名(多方的模型類名)小寫_set(也就是related_name)
.all()
條件篩選(已知主表資料查詢從表資料):filter(外來鍵__欄位__運算子=值)
book = bookinfo.objects.get(id=
1)book.heroinfo_set.
all(
)#模型類:heroinfo
多對一查詢,語法:例項名.外鍵名[.欄位]
條件篩選(已知從表資料查詢主表資料):filter(關聯模型類名小寫__欄位__運算子=值)
person = heroinfo.objects.get(id=
1)person.hbook #hbook為該模型類中的外來鍵
django提供了一些類實現管理資料分頁,這些類位於django/core/paginator.py中;
paginator物件:paginator(列表,int):返回分頁物件,引數為列表資料,每面資料的條數
from django.core.paginator import paginator
books = bookinfo.objects.
all(
)p = paginator(books,2)
p.page(2)
[0]#通過索引取值;paginator物件的page()方法返回page物件,不需要手動構造
Django框架連線MySQL資料庫
pycharm也是可以運算元據庫的 類似於資料庫得視覺化軟體 n icat等 pycharm可以充當很多款資料庫軟體的客戶端 所在位置 三個位置查詢資料庫相關 右側上方database 左下方database 配置裡面的plugins外掛程式搜尋安裝 如果都沒有,解除安裝pycharm重新裝 鏈結m...
Django資料庫操作API
資料庫操作api 型別描述 exact 精確匹配 polls.get object id exact 14 iexact 忽略大小寫的精確匹配 polls.objects.filter slug iexact foo 匹配 foo,foo,foo,等等.contains 大小寫敏感的內容包含測試 p...
Django資料庫ORM操作
簡單的說,orm是通過使用描述物件和資料庫之間對映的元資料,將程式中的物件自動持久化到關聯式資料庫中。orm在業務邏輯層和資料庫層之間充當了橋梁的作用。讓我們從o r開始。字母o起源於 物件 object 而r則來自於 關係 relational 幾乎所有的軟體開發過程中都會涉及到物件和關聯式資料庫...