阅读背景:

Python - Django - 添加首页尾页上一页下一页

来源:互联网 

添加首页和尾页:

views.py:

from django.shortcuts import render
from app01 import models


def book_list(request):
    # 从 URL 中取参数
    page_num = request.GET.get("page")
    print(page_num, type(page_num))
    page_num = int(page_num)

    # 定义两个变量保存数据从哪儿取到哪儿
    data_start = (page_num - 1) * 10
    data_end = page_num * 10

    # 书籍总数
    total_count = models.Book.objects.all().count()

    # 每一页显示多少条数据
    per_page = 10

    # 总共需要多少页码来显示
    total_page, m = divmod(total_count, per_page)

    # 页面上最多展示的页码
    max_page = 11
    half_max_page = max_page // 2

    # 页面上展示的页码的开始页
    page_start = page_num - half_max_page
    # 页面上展示的页码的结束页
    page_end = page_num + half_max_page

    # 如果当前页减一半比 1 小
    if page_start <= 1:
        page_start = 1
        page_end = max_page
    # 如果当前页加一半比总页码还大
    if page_end > total_page:
        page_end = total_page
        page_start = total_page - max_page + 1

    # 如果还有数据
    if m:
        total_page += 1

    all_book = models.Book.objects.all()[data_start:data_end]

    # 拼接 html 的分页代码
    html_list = []

    # 添加首页按钮
    html_list.append('<li><a href="/go.html?url=/books/?page=1">首页</a></li>')

    # 展示的页码
    for i in range(page_start, page_end + 1):
        tmp = '<li><a href="/go.html?url=/book_list/?page={0}">{0}</a></li>'.format(i)
        html_list.append(tmp)

    # 添加尾页按钮
    html_list.append('<li><a href="/go.html?url=/books/?page={}">尾页</a></li>'.format(total_page))

    page_html = "".join(html_list)  # 拼接 html 的分页代码

    return render(request, "book_list.html", {"books": all_book, "page_html": page_html})
from django.shortcuts



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: