دوره‌ها / Django / صفحه‌بندی (Pagination Intro)

صفحه‌بندی (Pagination Intro)

15 دقیقه Article

صفحه‌بندی: نمایش داده‌های زیاد 📄

وقتی داده‌های زیادی دارید (مثلاً 1000 پست)، نمایش همه اون‌ها در یک صفحه هم کند میشه هم کاربر رو خسته می‌کنه. صفحه‌بندی (Pagination) این مشکل رو حل می‌کنه!

چرا صفحه‌بندی مهمه؟
  • ✅ سرعت بیشتر: فقط داده‌های لازم لود میشن
  • ✅ UX بهتر: کاربر راحت‌تر می‌تونه داده‌ها رو ببینه
  • ✅ مصرف کمتر منابع سرور

Paginator Class

جنگو یک کلاس Paginator داره که کار صفحه‌بندی رو انجام می‌ده:

from django.core.paginator import Paginator
from blog.models import Post

# ساخت Paginator
posts = Post.objects.all()
paginator = Paginator(posts, 10)  # 10 آیتم در هر صفحه

# گرفتن صفحه اول
page = paginator.get_page(1)
print(page.object_list)  # لیست پست‌های صفحه اول
print(page.has_next())    # آیا صفحه بعدی وجود داره؟
print(page.has_previous())  # آیا صفحه قبلی وجود داره?
ویژگی‌های Page object:
  • object_list: لیست اشیاء این صفحه
  • number: شماره صفحه فعلی
  • has_next(): آیا صفحه بعدی وجود داره؟
  • has_previous(): آیا صفحه قبلی وجود داره؟
  • next_page_number(): شماره صفحه بعدی
  • previous_page_number(): شماره صفحه قبلی

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.

برای ذخیره پیشرفت وارد شوید