برنامه نویسی

معرفی Django Querysets – DEV Community

QuerySets راه جنگو برای بازیابی، فیلتر کردن و دستکاری داده ها از پایگاه داده است. آنها یک راه قدرتمند برای تعامل با پایگاه داده با استفاده از کد پایتون ارائه می دهند.

ایجاد QuerySets

برای ایجاد QuerySet، از objects ویژگی یک مدل

from myapp.models import Article

# Retrieve all articles
articles = Article.objects.all()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فیلتر کردن QuerySets

  1. فیلتر()

    • اشیاء مطابق با معیارهای داده شده را بازیابی می کند.
    • مثال:
     articles = Article.objects.filter(author='John Doe')
    
  2. exclude()

    • اشیایی که با معیارهای داده شده مطابقت دارند را مستثنی می کند.
    • مثال:
     articles = Article.objects.exclude(status='draft')
    
  3. دریافت ()

    • یک شی واحد منطبق با معیارها را بازیابی می کند.
    • مثال:
     article = Article.objects.get(id=1)
    
  • توجه: افزایش می دهد DoesNotExist اگر شیئی یافت نشد، و MultipleObjectsReturned اگر بیش از یک شی پیدا شود.

روش‌های QuerySet

  1. order_by()

    • نتایج را سفارش می دهد.
    • مثال:
     articles = Article.objects.order_by('-publication_date')
    
  2. values() و values_list()

    • لغت نامه ها یا فهرست هایی از فیلدهای خاص را برمی گرداند.
    • مثال:
     articles = Article.objects.values('title', 'author')
    
  3. متمایز ()

    • نتایج تکراری را حذف می کند.
    • مثال:
     articles = Article.objects.distinct('author')
    
  4. حاشیه نویسی ()

    • داده های اضافی را به هر شی اضافه می کند.
    • مثال:
     from django.db.models import Count
     articles = Article.objects.annotate(comment_count=Count('comments'))
    

عملیات QuerySet پیشرفته

  1. select_related() و prefetch_related()

    • پرس و جوهای پایگاه داده را با کاهش تعداد پرس و جوها بهینه می کند.
    • مثال:
     articles = Article.objects.select_related('author').all()
    
  2. جمع ()

    • محاسبات را روی QuerySet انجام می دهد.
    • مثال:
     from django.db.models import Avg
     average_rating = Article.objects.aggregate(Avg('rating'))
    
  3. bulk_create()

    • چندین شی را در یک پرس و جو ایجاد می کند.
    • مثال:
     Article.objects.bulk_create([
         Article(title='Article 1'),
         Article(title='Article 2'),
     ])
    

ترکیب QuerySets

  1. اتحادیه ()

    • دو QuerySet را ترکیب می کند.
    • مثال:
     qs1 = Article.objects.filter(status='published')
     qs2 = Article.objects.filter(author='John Doe')
     combined = qs1.union(qs2)
    
  2. تقاطع () و تفاوت ()

    • اشیاء مشترک یا متفاوت را بین QuerySets پیدا می کند.

نتیجه گیری

Django QuerySets یک ابزار همه کاره برای تعامل با پایگاه داده است که به توسعه دهندگان اجازه می دهد تا داده ها را به راحتی بازیابی و دستکاری کنند. درک QuerySets برای توسعه موثر جنگو بسیار مهم است.


نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا