Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mako模板+django+分页

mako模板+django+分页

作者头像
用户1171305
发布于 2017-12-28 03:55:55
发布于 2017-12-28 03:55:55
7750
举报
文章被收录于专栏:成长道路成长道路

遇到的问题:我看网上html页面大家通过page2.next_page_number和page2.preivous_page_number获取上一页和下一页的页码,而我在mako页面获取到的是一串很长的字符串,而不是需要的页码数,我的解决方案是通过后端传过来上一页和下一页的页码。

1.网上我找到的大多数是针对html页面来写的基于django框架的分页,我对着网上的针对自己的情况进行了修改。

2.首先看一下后端代码,别看这么多,其实起作用的就4句话,我都打了注解。

def modelmanager(request):     apps = appmanager.get_apps_dict(request.user)     models = model.objects.all() #查询所有数据     paginator = Paginator(models, 10)  # 每页显示10条纪录     page = request.GET.get('page')  # 获取客户端请求传来的页码     next=''     pre=''     try:         customer_list = paginator.page(page)  # 返回用户请求的页码对象         if customer_list.has_next():             next=customer_list.next_page_number()         else:             next=customer_list.number         if customer_list.has_previous():             pre=customer_list.previous_page_number()         else:             pre='1'     except PageNotAnInteger:         customer_list = paginator.page(1)  # 如果请求中的page不是数字,也就是为空的情况下     except EmptyPage:         customer_list = paginator.page(paginator.num_pages)  # 如果请求的页码数超出paginator.page_range(),则返回paginator页码对象的最后一页     return render('modelmanager.mako', request, {         'models': customer_list,         'date': datetime.datetime.now(),         'apps': apps,         'is_embeddable': request.GET.get('is_embeddable', False),         'pre':pre,         'next':next,     })

3.分页的写法,这是在mako模板中的写法。

<div class="pagination">     <nav>         <ul class="pagination">             % if models.has_previous:                 <li ><a href="?page=${pre}" aria-label="Previous"><span                         aria-hidden="true">&laquo;</span></a></li>             % endif             % for page_num in models.paginator.page_range:                 % if page_num == models.number:                     <li class="active"><a href="?page=${page_num}">${page_num}<span class="sr-only">(current)</span></a>                     </li>                 % else:                     <li ><a href="?page=${page_num}">${page_num}<span class="sr-only">(current)</span></a></li>                 % endif             % endfor             % if models.has_next:                 <li ><a href="?page=${next}" aria-label="Next"><span aria-hidden="true">&raquo;</span></a>                 </li>             % endif         </ul>     </nav> </div>

4.数据的展示,这个通过foreach将数据展示出来就可以。

<div style="width:100%">     <table id="models_manager" class="table table-striped table-bordered table-condensed" style="width:100%;table-layout:fixed;">         <thead>         <tr>             <th class="width1">序号</th>             <th class="width2">名称</th>             <th class="width3">类型</th>             <th class="width1">所有者</th>             <th class="width2">日期</th>             <th class="width3">训练集</th>             <th class="width3">模型路径</th>             <th class="width3">训练参数</th>             <th class="width3">评估表名</th>             <th class="width3">操作</th>         </tr>         </thead>         <tbody>             % for model in models:                 <tr>                     <td id="${model.id}" name="id" >${model.id}</td>                     <td id="${model.m_name}" name="m_name" data-toggle="tooltip" data-placement="bottom" title="${model.m_name}">${model.m_name}</td>                     <td id="${model.m_type}" name="m_type" data-toggle="tooltip" data-placement="bottom" title="${model.m_type}">${model.m_type}</td>                     <td id="${model.m_user}" name="m_user" data-toggle="tooltip" data-placement="bottom" title="${model.m_user}">${model.m_user}</td>                     <td id="${model.m_time}" name="m_time" data-toggle="tooltip" data-placement="bottom" title="${model.m_time}">${model.m_time}</td>                     <td id="${model.m_traindata}" names="m_traindata" data-toggle="tooltip" data-placement="bottom" title="${model.m_traindata}">${model.m_traindata}</td>                     <td id="${model.m_path}" name="m_path" data-toggle="tooltip" data-placement="bottom" title="${model.m_path}">${model.m_path}</td>                     <td id="${model.m_arguments}" name="m_arguments" data-toggle="tooltip" data-placement="bottom" title="${model.m_arguments}" >${model.m_arguments}</td>                     <td id="${model.evaluate_tablename}" name="evaluate_tablename" data-toggle="tooltip" data-placement="bottom" title="${model.evaluate_tablename}" >${model.evaluate_tablename}</td>                     <td >                         <button style="width:85px;height:35px" type="button" class="btn btn-primary" id='${model.evaluate_tablename}'                                 onclick="show_evaluate(event,${model.evaluate_tablename})">评估结果                         </button>                     </td>                 </tr>             % endfor         </tbody>     </table> </div>

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-12-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python进阶31-Django 分页器
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
1.6K0
Python进阶31-Django 分页器
基于django的个人博客网站建立(四)
今天主要添加了留言与评论在后台的管理和主页文章的分页显示,文章类别的具体展示以及之前预留链接的补充
py3study
2020/01/15
1.9K0
基于django的个人博客网站建立(四)
13.Django基础之django分页
  我们使用脚本批量创建一些测试数据(将下面的代码保存到bulk_create.py文件中放到Django项目的根目录,直接执行即可。):
changxin7
2019/10/14
9300
Django 使用Paginator分页器
上方的分页代码还有一个不足之处,当我们的页码数量过多时,会全部展示出来,整个页面都是很不美观,我们直接在上方代码上稍加修改一下试试.
王瑞MVP
2022/12/28
1.2K0
Django 使用Paginator分页器
Django 分页器
目录 Django 分页器 方法介绍 示例 分页器模板 Django 分页器 在页面显示分页数据,需要用到Django分页器组件 先看效果图: 使用分页器需要导入模块 导入:from django.core.paginator import Paginator 方法介绍 Paginator对象: paginator = Paginator(user_list, 10) # 传入分页数据,和展示的条数 # per_page: 每页显示条目数量 # count: 数据总个数 # n
HammerZe
2022/03/25
8460
Django 分页器
Django分页笔记
from django.core.paginatorimport Paginator,EmptyPage,PageNotAnInteger
Centy Zhao
2019/12/26
3540
Django分页器
分页功能是所有网页上都需要提供的功能,当要展示的条目比较多时,就需要进行分页,不但能减小数据库读取数据压力,也有利于用户浏览。 Django为我们提供了一个Paginator分页工具,这个类帮助我们来管理分页数据,该类存放在django/core/paginator.py它可以接收列表、元组或其他可迭代对象。
py3study
2020/01/20
7880
程序员笔记|三步实现Django Paginator 分页
Django提供了一个新的类来帮助管理分页数据,这个类存放在django/core/paginator.py.它可以接收列表、元组或其它可迭代的对象。本文将分三步介绍Django Paginator 分页的实现步骤。
宜信技术学院
2019/07/02
3380
程序员笔记|三步实现Django Paginator 分页
ASP.NET MVC使用Bootstrap系列(4)——使用JavaScript插件
序言 Bootstrap的JavaScript插件是以JQuery为基础,提供了全新的功能并且还可以扩展现有的Bootstrap组件。通过添加data attribute(data 属性)可以轻松的使用这些插件,当然你也可以使用编程方式的API来使用。 为了使用Bootstrap插件,我们需要添加Bootstrap.js或者Bootstrap.min.js文件到项目中。这两个文件包含了所有的Bootstrap插件,推荐引用Bootstrap.min.js。当然你也可以包含指定的插件来定制化Bootstr
用户1161731
2018/01/11
5.4K0
ASP.NET MVC使用Bootstrap系列(4)——使用JavaScript插件
网页|利用提示框(Tooltip)实现弹窗效果
提示框是指当鼠标移动到指定元素上时,会显示出一个提示框显示提示信息。常见的提示工具触发器是a链接、input输入框和button按钮。提示框可在所选位置定位的上下左右显示提示内容,其默认位置是上方。
算法与编程之美
2020/05/16
2.7K0
python测试开发django-117.bootstrapTable结合Paginator分页器查显示表格
bootstrap 提供了table表格插件,可以快速帮我们实现分页功能。这样就不用在前端页面上写分页逻辑,只需关注后端给对应数据就行。 bootstrap-table提供两种分页方式,client和server,即客户端和服务端分页;
上海-悠悠
2021/09/14
1.5K0
BootStrap应用开发学习入门1
什么是字体图标? 答:字体图标是在 Web 项目中使用的图标字体,可以通过基于项目的 Bootstrap 来免费使用这些图标。
全栈工程师修炼指南
2020/10/23
45.5K0
BootStrap应用开发学习入门1
Django分页器的用法
Django中利用orm实现批量插入一般有两种方式:单条插入或者利用bulk_create批量插入
仙人技术
2021/08/31
1.1K0
django list类型数据分页
有一个django项目,由于业务要求,自己构造了一个list数据类型。这是一个临时数据,不需要保存到表中,但是需要分页展示。
py3study
2020/04/21
8090
Django 前端BootCSS 实现分页
通过使用bootstrap框架,并配合Django自带的Paginator分页组件即可实现简单的分页效果。
王瑞MVP
2022/12/28
5020
Django 前端BootCSS 实现分页
python测试开发django-116.Paginator分页器页数大时显示省略号...
使用django自带的Paginator分页器集合bootstrap的pagination控件可以实现分页功能, 如果页数较大的时候,希望能显示省略号+当前页,这样看起来更美观一点。
上海-悠悠
2021/09/14
7540
django实战(二)--带多字段模糊查询的分页(也是不容易)
上节我们实现了分页功能,这节我们要实现对模糊查询后的结果进行分页。(引入了bootstrap框架)
西西嘛呦
2020/08/26
1.1K0
django实战(一)--dango自带的分页(极简)
技术总结:最基本的是Paginator里面的一些值(当然此处我并没有去尝试其他的,有兴趣的可以去搜下,也挺简单的)。然后其中的一个就是前端pn值如何通过url传值给后端,注意标蓝的地方。
西西嘛呦
2020/08/26
5540
bootstrap tooltip
<!doctype html> <html> <head> <meta charset="utf-8"> <title>联想控股</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="css/bootstrap.css" rel="stylesheet" type="text/css"> <script src="http://code.jquery.com/jquery.js"></script> <script src="js/bootstrap.min.js"></script> <script> ('[data-toggle="tooltip"]').tooltip() }) </script> </head> <body> <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="top" title="Tooltip on top"> Tooltip on top </button> <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="right" title="Tooltip on right"> Tooltip on right </button> <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom"> Tooltip on bottom </button> <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="left" title="Tooltip on left"> Tooltip on left </button> </body> </html>
用户5760343
2019/07/07
1.4K0
django 写测试工具用到的 paginator 分页
作者:郭佳明 导语 之前写CC的测试平台的时候,里面有一个机器管理列表信息,使用表格来展示的,数据量大概有240多条,需要用到分页。之前没有接触bootstrap table,而是网上随便找了一个表格
serena
2017/07/31
9390
相关推荐
Python进阶31-Django 分页器
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档