使用Django中的filter方法進行數(shù)據(jù)查詢的基本操作
更新時間:2024年05月23日 08:44:50 作者:pycode
在 Django 中,QuerySet 的 filter() 方法是一個強大的工具,用于從數(shù)據(jù)庫中檢索數(shù)據(jù)并根據(jù)指定的條件進行篩選,在本文中,我們將介紹如何使用 filter() 方法來執(zhí)行各種類型的數(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. 正則表達式匹配 (__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 對象)
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 方法進行數(shù)據(jù)查詢 results = MyModel.objects.filter(title='Example', price__gt=10) # 打印結(jié)果 for result in results: print(result)
到此這篇關(guān)于使用Django中的filter方法進行數(shù)據(jù)查詢的基本操作的文章就介紹到這了,更多相關(guān)Django filter數(shù)據(jù)查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 讀寫txt文件 json文件的實現(xiàn)方法
下面小編就為大家?guī)硪黄猵ython 讀寫、創(chuàng)建 文件的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10用Python做個自動化彈鋼琴腳本實現(xiàn)天空之城彈奏
突然靈機一動,能不能用Python自動化腳本彈奏一曲美妙的鋼琴曲呢?今天就一起帶大家如何用Python實現(xiàn)自動化彈出一首《天空之城》有需要的朋友可以借鑒參考下2021-09-09Python基于opencv的簡單圖像輪廓形狀識別(全網(wǎng)最簡單最少代碼)
這篇文章主要介紹了基于opencv的簡單圖像輪廓形狀識別(全網(wǎng)最簡單最少代碼),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01