如何在 python mako 中进行分页
How to do pagination in python mako
我刚刚开始使用 python 制作网页。目前我正在使用 Mako 和 CherryPy 创建一个本地服务器来测试我写的任何东西。
我为我的数据库添加了一个搜索页面,它可以产生任意数量的结果,从 0 到很多,所以最好的显示方式是通过分页。我在网上快速浏览了一下,唯一能找到的帮助是这个网页:
http://makoframework.com/docs/3.6/learn-more:pagination
问题是我不明白它在显示什么,到目前为止我只使用 Mako 将变量输入 html 和 ${variable}
符号。
我希望更有经验的人可以向我展示并举例说明它是如何工作的,因为我在网上找不到任何例子。
提前致谢!
首先,我希望我们都知道您的示例 link 指向具有相同名称的 PHP 框架站点,Mako。
要使分页正常工作,您需要为每个实体实现两个方法(或 table 为简单起见)。在简单的情况下,第一个是 count()
returns 个条目数,第二个是 list(page, itemsPerPage)
给定页面的 returns 个条目。
然后你需要决定你喜欢什么样的分页风格。有几种常见的样式。例如。 滑动 样式如下所示:
[1] 2 3 4 » →
← « 1 [2] 3 4 » →
← « 2 [3] 4 5 » →
← « 3 [4] 5 6 » →
← « 4 [5] 6 7 » →
← « 4 5 [6] 7 » →
← « 4 5 6 [7]
正如您在 link 编辑的页面的模板片段中看到的那样,分页模板需要多个值,例如当前页、同级页、第一页、最后一页等。因此您需要计算这些值,包括条目总数、当前页、每页条目数和分页样式。实现是非常简单的数学运算。
当时我需要这种简单的页面计算,但在 Cheese Shop 却找不到。只有一些复杂的东西试图顺便做很多事情,我没有问。所以我写了 PageCalc, which does such simple calcualtion for couple of pagination styles. There's also CherryPy example app,它使用 Jina2,但如果你愿意,可以很容易地将它切换到 Mako。
我刚刚开始使用 python 制作网页。目前我正在使用 Mako 和 CherryPy 创建一个本地服务器来测试我写的任何东西。
我为我的数据库添加了一个搜索页面,它可以产生任意数量的结果,从 0 到很多,所以最好的显示方式是通过分页。我在网上快速浏览了一下,唯一能找到的帮助是这个网页: http://makoframework.com/docs/3.6/learn-more:pagination
问题是我不明白它在显示什么,到目前为止我只使用 Mako 将变量输入 html 和 ${variable}
符号。
我希望更有经验的人可以向我展示并举例说明它是如何工作的,因为我在网上找不到任何例子。
提前致谢!
首先,我希望我们都知道您的示例 link 指向具有相同名称的 PHP 框架站点,Mako。
要使分页正常工作,您需要为每个实体实现两个方法(或 table 为简单起见)。在简单的情况下,第一个是 count()
returns 个条目数,第二个是 list(page, itemsPerPage)
给定页面的 returns 个条目。
然后你需要决定你喜欢什么样的分页风格。有几种常见的样式。例如。 滑动 样式如下所示:
[1] 2 3 4 » →
← « 1 [2] 3 4 » →
← « 2 [3] 4 5 » →
← « 3 [4] 5 6 » →
← « 4 [5] 6 7 » →
← « 4 5 [6] 7 » →
← « 4 5 6 [7]
正如您在 link 编辑的页面的模板片段中看到的那样,分页模板需要多个值,例如当前页、同级页、第一页、最后一页等。因此您需要计算这些值,包括条目总数、当前页、每页条目数和分页样式。实现是非常简单的数学运算。
当时我需要这种简单的页面计算,但在 Cheese Shop 却找不到。只有一些复杂的东西试图顺便做很多事情,我没有问。所以我写了 PageCalc, which does such simple calcualtion for couple of pagination styles. There's also CherryPy example app,它使用 Jina2,但如果你愿意,可以很容易地将它切换到 Mako。