【问题标题】:Flask pagination without query strings没有查询字符串的烧瓶分页
【发布时间】:2021-11-02 08:03:41
【问题描述】:

我正在开发一个类似于 wordpress 博客有标签的“标签”系统。

我已经设法让一个使用flask-pagination库的分页很好地工作的路线,但是网址有查询字符串。我不想拥有像 domain.com/tag.html?page=2 这样的网址,而是拥有像 domain.com/tag-2.html 这样的网址

任何帮助将不胜感激。这是我目前的路线:

def tags_main():
model = compile_page.Tags(db)
page = request.args.get('page', default=0, type=int)
limit = 15
offset = page * limit - limit
total_pages = model.get_all_tagged()
tagged_pages = model.get_all_tags(limit=limit, offset=page * limit)
print(tagged_pages)
pagination = Pagination(page=page, per_page=limit, total=total_pages, css_framework='bulma',
                        tagged_pages=tagged_pages)
posts_data = {
    'tagged_pages': tagged_pages,
    'pagination': f"/tag.html?page=",
    'present_page': page,
}
return render_template('ssr_templates/tag.html', posts_data=posts_data, pagination=pagination)

在此先感谢您提供的任何帮助或提示,让我走上正确的道路。

【问题讨论】:

    标签: python flask pagination


    【解决方案1】:

    你可以有这样的动态页面:

    @app.route('/tag-<int:page>')
    def tag(page: int):
        return f"doing stuff with {page}"
    

    【讨论】:

    • 谢谢@eagr,这是一个我没有考虑过的好主意。我会玩这个一点点。我是python和flask的新手,我会在这里更新我的结果。
    • 似乎是一个非常好的方法,我现在正在努力的是如何将其余数据传递到第二条路线('/tag-),以便它显示页面的正确数据
    • 您想传递给路由的其余数据是什么?您有所需的页面,因此您可以通过分页获取相关项目。
    • 我确定这真的是我想要做的傻事(这样一个新手),但我试图像这样传递数据:@app.route('/tag- .html') def tag(page: int, pagination, posts_data): pagination = pagination posts_data = posts_data return f"doing stuff with {page} and {pagination} and {posts_data}" 但我当然收到 500 错误像这样的页面。我希望能够传递属于当前页面的数据,以及分页中“活动”页面的当前位置。
    • post 请求数据在 flask.request.json 中可用(确保从客户端以 json 内容类型发送)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多