Django框架(二) 資料庫操作

2021-10-10 03:41:25 字數 3161 閱讀 5513

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 幾乎所有的軟體開發過程中都會涉及到物件和關聯式資料庫...