首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Pony ORM进行分页

使用Pony ORM进行分页
EN

Stack Overflow用户
提问于 2017-04-05 23:00:59
回答 2查看 729关注 0票数 2

有没有使用Pony ORM进行分页的最佳实践?

我看到其他人有这些has_nexthas_previous帮助器方法,但在Pony中我只能靠自己了。

到目前为止,这就是我所拥有的,几个Jinja助手:

代码语言:javascript
复制
# Jinja helpers for pagination
def next_page(current, max_page):
    if current >= max_page:
        return False
    else:
        return current + 1


def prev_page(current, max_page):
    if current < 2:
        return False
    else:
        return current - 1 

max_page的计算方法如下:math.ceil(MyTable.select().count()/PAGE_SIZE)

但变得有点单调乏味,你必须不断地发送当前页面和最大页面。

代码语言:javascript
复制
{% if maxpage > 1 %}
    {% if prev_page(page, maxpage) %}
    <a href="{{ url_for('index', pagenum=prev_page(page, maxpage)) }}"><</a>
    {% endif %}

    {% if next_page(page, maxpage) %}
    <a href="{{ url_for('index', pagenum=next_page(page, maxpage)) }}">></a>
    {% endif %}
{% endif %}

我是不是漏掉了什么?还有更好的办法吗?

EN

回答 2

Stack Overflow用户

发布于 2017-05-22 04:19:47

您可以查询分页

代码语言:javascript
复制
q = models.select(d for d in models.Thingy)
page = 1
count = q.count()
results_of_first_page = q.page(page, 20)
pages = int(count/20)
if pages > 20:
    pages = 20
票数 2
EN

Stack Overflow用户

发布于 2019-01-19 05:07:01

快速解决方案,可能不是最好的

代码语言:javascript
复制
@app.route('/persons-list/<int:page>') 
def persons_list(page):
    LIMIT = 10
    items = select(p for p in models.Person)
    return render_template('persons_list.html',
                            maxpage=items.count()//LIMIT,
                            page=page,
                            items=items.page(page, LIMIT))

在模板中:

代码语言:javascript
复制
{% if maxpage > 1 %}
    {% if page - 1 >= 1 %}
        <a href="{{ url_for('persons_list', page=page-1) }}"><</a>
    {% endif %}

    Page {{ page }} of {{ maxpage }}

    {% if page + 1 <= maxpage %}
        <a href="{{ url_for('persons_list', page=page+1) }}">></a>
    {% endif %}
{% endif %}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43234918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档