Django模型執行查詢

2021-10-08 19:35:18 字數 3818 閱讀 3040

from django.db import models

class

blog

(models.model)

: name = models.charfield(max_length=

100)

tagline = models.textfield(

)def

__str__

(self)

:return self.name

class

author

(models.model)

: name = models.charfield(max_length=

200)

email = models.emailfield(

)def

__str__

(self)

:return self.name

#blog-entry(一對多,外來鍵一般放在多的那個模型類中)

#author-entry(多對多)

class

entry

(models.model)

: blog = models.foreignkey(blog, on_delete=models.cascade)

headline = models.charfield(max_length=

255)

body_text = models.textfield(

) pub_date = models.datefield(

) mod_date = models.datefield(

) authors = models.manytomanyfield(author)

number_of_comments = models.integerfield(

) number_of_pingbacks = models.integerfield(

) rating = models.integerfield(

)def

__str__

(self)

:return self.headline

python manage.py makemigrations

python manage.py migrate

建立物件

我建立的物件

可以通過admin後台去建立

def

index

(request)

:# all()檢索全部物件

entrys=entry.objects.

all(

)print

(entrys)

# filter()返回滿足條件的物件(number_of_comments大於10)

fentrys=entry.objects.

filter

(number_of_comments__gt=10)

print

(fentrys)

# exclude()返回不滿足查詢條件的物件

exclutry=entry.objects.exclude(number_of_comments__gt=10)

print

(exclutry)

# 用get()獲取單個物件(主鍵id為1)

one_entry=entry.objects.get(pk=1)

#get()獲取的單個物件

print

(one_entry)

one_entrylist=entry.objects.

filter

(pk=1)

#filter獲取的是列表

print

(one_entrylist)

,,

]>

,]>

]>

今天在學模型查詢

]>

跨關係查詢
# 跨關係查詢

blog_name=entry.objects.

filter

(blog__name=

'測試的'

)print

(blog_name)

# 跨關係查詢反向操作

# 檢索blog物件標題為『haha』的條目(雙下劃線__)

bblog=blog.objects.

filter

(entry__headline__contains=

'haha'

)print

(bblog)

# 跨多值關聯

print

('***************='

)# 刪選出標題包含haha並且出版年分為2020的部落格

mblog=blog.objects.

filter

(entry__headline__contains=

'haha'

,entry__pub_date__year=

2020

)# 刪選出標題包含haha或者出版年分為2020的部落格

mmblog=blog.objects.

filter

(entry__headline__contains=

'haha').

filter

(entry__pub_date__year=

2020

)print

(mblog)

print

(mmblog)

]>

]>

====

====

====

====

]>

]>

我理解的正向查詢就是我查詢的屬性就是我所查詢的資料表,也就是說,資料表裡正好有我所查詢的屬性;反向查詢就是我所查詢的資料表中沒有我所查詢的屬性字段,必須得在關聯外來鍵字段存在得那張表去查詢,下面有例子可以方便了解;

print

('**********關聯物件**********==='

)# **********==一對多**********=

# 正向訪問(entry裡有blog屬性直接.就能訪問)

e=entry.objects.get(pk=2)

.blog

print

(e)# 反向關聯(無外來鍵物件模型名物件.有外建的表(小寫)_set.all())

b=blog.objects.get(pk=1)

print

(b.entry_set.

all())

# 在反向關聯的基礎上條件查詢

print

(b.entry_set.

filter

(headline__contains=

'ce'

))

test

,]>

]>

Django 教程 Django 模型

乙個django模組是內建的功能,django使用建立表,他們的田地,和各種約束。簡而言之,django models是與django一起使用的sql資料庫。sql 結構化查詢語言 很複雜,涉及許多不同的查詢,用於建立,刪除,更新或與資料庫有關的任何其他內容。django模型簡化了任務並將表組織到模...

Django 模型層 模型

django內建模型方法 乙個模型包含了資料的字段和操作方法,每個模型對映為一張資料庫中的表 person models.py from django.db import models class person models.model first name models.charfield max...

Django模型應用

django模型應用 在web 應用中,主觀邏輯經常牽涉到與資料庫的互動。資料庫驅動 在後台連線資料庫伺服器,從中取出一些資料,然後在 web 頁面用漂亮的格式展示這些資料。這個 也可能會向訪問者提供修改資料庫資料的方法。在django中同樣提供了資料庫的互動功能,就是我們所說的mtv中的 m or...