繁体   English   中英

用分页替换webhelpers:如何移植PageURL_WebOb? (从py2到py3)

[英]Replacing webhelpers with paginate: how to port PageURL_WebOb? (py2 to py3)

将Python 2移植到Python 3

如您在这里阅读的,Python 2包webhelpers.paginate在Python 3下不再存在。相反,它们为Python 3创建了一个额外的模块paginate (可在此处找到)。

Python 2

在Python 2下使用pyramid ,代码如下所示:

# request is a pyramid request
def get_paginator(request, page=1, items_per_page=10):
    page_url = PageURL_WebOb(request)
    return Page(sql-query-here, page, url=page_url, items_per_page=items_per_page)

Python 3

在Python 3下,他们从paginate删除了PageURL_WebOb 因此,有可能直接从request检索page_url吗?

正确的Python 3端口会是什么样子?

因此,与史蒂夫·皮尔西的帮助和这个问题从官方paginate混帐我能够将它移植的方式如下:

# request is a pyramid request
def get_paginator(request, page=1, items_per_page=10):
    def url_maker(page_number):
        query = request.GET
        query["page"] = str(page_number)
        return request.current_route_url(_query=query)

    return Page(sql-query-here, page=page, items_per_page=items_per_page, url_maker=url_maker)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM