برنامه نویسی
معرفی Django Querysets – DEV Community

QuerySets راه جنگو برای بازیابی، فیلتر کردن و دستکاری داده ها از پایگاه داده است. آنها یک راه قدرتمند برای تعامل با پایگاه داده با استفاده از کد پایتون ارائه می دهند.
ایجاد QuerySets
برای ایجاد QuerySet، از objects
ویژگی یک مدل
from myapp.models import Article
# Retrieve all articles
articles = Article.objects.all()
فیلتر کردن QuerySets
-
فیلتر()
- اشیاء مطابق با معیارهای داده شده را بازیابی می کند.
- مثال:
articles = Article.objects.filter(author='John Doe')
-
exclude()
- اشیایی که با معیارهای داده شده مطابقت دارند را مستثنی می کند.
- مثال:
articles = Article.objects.exclude(status='draft')
-
دریافت ()
- یک شی واحد منطبق با معیارها را بازیابی می کند.
- مثال:
article = Article.objects.get(id=1)
- توجه: افزایش می دهد
DoesNotExist
اگر شیئی یافت نشد، وMultipleObjectsReturned
اگر بیش از یک شی پیدا شود.
روشهای QuerySet
-
order_by()
- نتایج را سفارش می دهد.
- مثال:
articles = Article.objects.order_by('-publication_date')
-
values() و values_list()
- لغت نامه ها یا فهرست هایی از فیلدهای خاص را برمی گرداند.
- مثال:
articles = Article.objects.values('title', 'author')
-
متمایز ()
- نتایج تکراری را حذف می کند.
- مثال:
articles = Article.objects.distinct('author')
-
حاشیه نویسی ()
- داده های اضافی را به هر شی اضافه می کند.
- مثال:
from django.db.models import Count articles = Article.objects.annotate(comment_count=Count('comments'))
عملیات QuerySet پیشرفته
-
select_related() و prefetch_related()
- پرس و جوهای پایگاه داده را با کاهش تعداد پرس و جوها بهینه می کند.
- مثال:
articles = Article.objects.select_related('author').all()
-
جمع ()
- محاسبات را روی QuerySet انجام می دهد.
- مثال:
from django.db.models import Avg average_rating = Article.objects.aggregate(Avg('rating'))
-
bulk_create()
- چندین شی را در یک پرس و جو ایجاد می کند.
- مثال:
Article.objects.bulk_create([ Article(title='Article 1'), Article(title='Article 2'), ])
ترکیب QuerySets
-
اتحادیه ()
- دو QuerySet را ترکیب می کند.
- مثال:
qs1 = Article.objects.filter(status='published') qs2 = Article.objects.filter(author='John Doe') combined = qs1.union(qs2)
-
تقاطع () و تفاوت ()
- اشیاء مشترک یا متفاوت را بین QuerySets پیدا می کند.
نتیجه گیری
Django QuerySets یک ابزار همه کاره برای تعامل با پایگاه داده است که به توسعه دهندگان اجازه می دهد تا داده ها را به راحتی بازیابی و دستکاری کنند. درک QuerySets برای توسعه موثر جنگو بسیار مهم است.