صفحهبندی (Pagination Intro)
صفحهبندی: نمایش دادههای زیاد 📄
وقتی دادههای زیادی دارید (مثلاً 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(): شماره صفحه قبلی
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.