博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django 之 分页功能
阅读量:7144 次
发布时间:2019-06-29

本文共 2299 字,大约阅读时间需要 7 分钟。

HTML代码

    
Title

图书列表

{% for book in book_list %}
{% endfor %}
ID 名字 出版社 价格
{
{ book.id }}
{
{ book.title }}
{
{ book.publisher.name }}
{
{ book.price }}
{#重点位置#}

Python 代码

def book_list(request):    # 每一页显示数量    per_page = 7    # 总数据    total_count = models.Book.objects.all().count()    # 总共需要多少页显示数据    total_page, m = divmod(total_count, per_page)    if m:        total_page += 1    # 从URL中取参数,当没有page时,page_num为1,当page_num大于总页数时,赋于最后一页,当page为字符时,异常出错时,为1值    try:        page_num = request.GET.get("page")        page_num = int(page_num)        if page_num > total_page:            page_num = total_page        elif page_num < 1:            page_num =1    except Exception as e:        page_num = 1    #定义两个变量,截取数据    data_start = (page_num-1)*per_page    data_end = page_num*per_page    #页面上总共展示多少页面    max_page =11    if total_page < max_page:        max_page = total_page    half_max_page = max_page//2    #结果为5,即左右各5页    # 页面上展示的面码从那儿结束    page_end = page_num + half_max_page    #页面上展示的页码从那儿开始    page_start = 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    #在后台拼接分页的html    html_str_list = []    for i in range(page_start, page_end+1):        #为当前加一个active样式        if i == page_num:            tmp = '
  • {0}
  • '.format(i) else: tmp = '
  • {0}
  • '.format(i) html_str_list.append(tmp) #将所有li的html文件拼接连接成一块 page_html = "".join(html_str_list) #print(page_html) all_book = models.Book.objects.all()[data_start:data_end] return render(request,"book.html",{"book_list":all_book,"page_html":page_html,"total_page":total_page})

    展示效果

    Django 之 分页功能

    转载于:https://blog.51cto.com/12965094/2395798

    你可能感兴趣的文章
    在IIS8添加WCF服务支持
    查看>>
    (转)代码执行的效率
    查看>>
    第一天用MongoDB
    查看>>
    Linux服务器部署系列之二—MySQL篇
    查看>>
    STM32笔记记录3
    查看>>
    typedef关键字
    查看>>
    EntityType 'UserInfo' has no key defined. Define the key for this EntityType.
    查看>>
    Merge PDF File using itextsharp library
    查看>>
    使用微软的TFS云服务
    查看>>
    高效能TCP通讯基础组件Beetle.Express
    查看>>
    MyEclipse内存不足配置
    查看>>
    四舍五入网络Java保留两位小数
    查看>>
    MFC 循环界面假死的解决(MFC 按钮终止循环)
    查看>>
    详细解说九宫图比较常用的多控件布局
    查看>>
    程序员的出路在哪里?挣钱的机会来了续-福利来了,仿QQ界面,放出全部源码,打造创业框架及实现思路...
    查看>>
    浅析Android线程模型一 --- 转
    查看>>
    Cocos2d-x PluginX (二)增加新的Plugin
    查看>>
    python-django开发学习笔记四
    查看>>
    cocos2d-x开发记录:二,基本概念(导演,场景,层和精灵,场景切换,效果)...
    查看>>
    Binutils工具集中的一些比较常用的工具
    查看>>