使用Django中的filter方法進(jìn)行數(shù)據(jù)查詢的基本操作
基本用法
1. 等于 (=)
results = MyModel.objects.filter(title='Example')
2. 不等于 (exclude)
results = MyModel.objects.exclude(title='Example')
3. 大于 (__gt) / 大于等于 (__gte)
results = MyModel.objects.filter(price__gt=10) results = MyModel.objects.filter(price__gte=10)
4. 小于 (__lt) / 小于等于 (__lte)
results = MyModel.objects.filter(price__lt=10) results = MyModel.objects.filter(price__lte=10)
5. 包含 (__contains) / 不包含 (exclude + __contains)
results = MyModel.objects.filter(title__contains='Example') results = MyModel.objects.exclude(title__contains='Example')
6. 開始于 (__startswith) / 結(jié)束于 (__endswith)
results = MyModel.objects.filter(title__startswith='Ex') results = MyModel.objects.filter(title__endswith='ple')
7. 正則表達(dá)式匹配 (__regex)
results = MyModel.objects.filter(title__regex=r'^Ex.*')
8. 是否為空 (__isnull)
results = MyModel.objects.filter(price__isnull=True) results = MyModel.objects.filter(price__isnull=False)
組合查詢
1. AND 條件
results = MyModel.objects.filter(title='Example', price__gt=10)
2. OR 條件 (使用 Q 對(duì)象)
from django.db.models import Q results = MyModel.objects.filter(Q(title='Example') | Q(price__gt=10))
IN 查詢
1. __in 查詢
results = MyModel.objects.filter(id__in=[1, 2, 3])
日期查詢
1. 日期字段 (__date, __year, __month, __day, __week_day)
results = MyModel.objects.filter(created_at__date='2024-05-21') results = MyModel.objects.filter(created_at__year=2024) results = MyModel.objects.filter(created_at__year=2024, created_at__month=5) results = MyModel.objects.filter(created_at__year=2024, created_at__month=5, created_at__day=21)
外鍵字段查詢
1. 跨表查詢
results = MyModel.objects.filter(user__email='example@example.com')
示例代碼
# 導(dǎo)入必要的模塊和類 from django.db import models # 創(chuàng)建模型類 class MyModel(models.Model): title = models.CharField(max_length=100) price = models.DecimalField(max_digits=10, decimal_places=2) created_at = models.DateTimeField() # 使用 filter 方法進(jìn)行數(shù)據(jù)查詢 results = MyModel.objects.filter(title='Example', price__gt=10) # 打印結(jié)果 for result in results: print(result)
到此這篇關(guān)于使用Django中的filter方法進(jìn)行數(shù)據(jù)查詢的基本操作的文章就介紹到這了,更多相關(guān)Django filter數(shù)據(jù)查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 讀寫txt文件 json文件的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇python 讀寫、創(chuàng)建 文件的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換
經(jīng)常會(huì)遇到圖片格式需要轉(zhuǎn)換的情況,這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換,文中示例代碼介紹的非常詳細(xì)、實(shí)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08python簡(jiǎn)單獲取數(shù)組元素個(gè)數(shù)的方法
這篇文章主要介紹了python簡(jiǎn)單獲取數(shù)組元素個(gè)數(shù)的方法,實(shí)例分析了Python中l(wèi)en方法的相關(guān)使用技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-07-07Java byte數(shù)組操縱方式代碼實(shí)例解析
這篇文章主要介紹了Java byte數(shù)組操縱方式代碼實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07用Python做個(gè)自動(dòng)化彈鋼琴腳本實(shí)現(xiàn)天空之城彈奏
突然靈機(jī)一動(dòng),能不能用Python自動(dòng)化腳本彈奏一曲美妙的鋼琴曲呢?今天就一起帶大家如何用Python實(shí)現(xiàn)自動(dòng)化彈出一首《天空之城》有需要的朋友可以借鑒參考下2021-09-09Python基于opencv的簡(jiǎn)單圖像輪廓形狀識(shí)別(全網(wǎng)最簡(jiǎn)單最少代碼)
這篇文章主要介紹了基于opencv的簡(jiǎn)單圖像輪廓形狀識(shí)別(全網(wǎng)最簡(jiǎn)單最少代碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01