Django - 分页器

1 、批量数据导入

建立Django项目:pageDemo

modles

from django.db import models

class Book(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=32)
    price = models.DecimalField(max_digits=8, decimal_places=2)

数据库迁移

python manage.py makemigrations
python manage.py migrate

批量导入数据

def index(request):
    # 批量生成数据

    # 方式一
    # for i in range(100):
    #     Book.objects.create(title='book_%s'%i,price=i*i)
    
  #方式二 book_list
= [] for i in range(100): book_obj = Book(title="book_%s" % i, price=i * i) book_list.append(book_obj) Book.objects.bulk_create(book_list) # 批量导入 return render(request,'index.html')

 对数据库的批量数据进行展示:

def index(request):
    '''
    # 批量生成数据
    # 方式一
    # for i in range(100):
    #     Book.objects.create(title='book_%s'%i,price=i*i)

    book_list = []
    for i in range(100):
        book_obj = Book(title="book_%s" % i, price=i * i)
        book_list.append(book_obj)

    Book.objects.bulk_create(book_list)  # 批量导入
    '''
    book_list=Book.objects.all()
    return render(request,'index.html',{'book_list':book_list})

index.html

<body>
    <ul>
        {% for book in book_list %}
        <li>
            {{ book.title }}:{{ book.price }}
        </li>
        {% endfor %}
    </ul>
</body>
运行结果:

 数据过多在一个页面展

2、分页器的使用

#导入分页器

from django.core.paginator import Paginator
def index(request):
    book_list=Book.objects.all()
    # 分页器  1.对谁做分页, 每页几条数据
    paginator=Paginator(book_list,10)
    print("count:", paginator.count)  # 数据总数
    print("num_pages", paginator.num_pages)  # 总页数
    print("page_range", paginator.page_range)  # 页码的列表# 显示某一页的具体方式:
    page1=paginator.page(1)
    # 方式一
    print('page1.object_list',page1.object_list)
    # 方式二
    for i in page1:
        print(i)
    return render(request,'index.html',{'book_list':book_list})

猜你喜欢

转载自www.cnblogs.com/foremostxl/p/9971885.html