flask-sqlalchemy 内容页,分页上下一篇


我在练习做一个博客,内容页我想实现上一篇和下一篇,遇到难点了……
表结构为:
id (主键) book_id (外键) content (内容)
(一个 book 有多个内容行,类似小说章节)

这是我的内容视图:
@app.route('/book/< int:book_id >/< int:chapter_id >/')
def chapter(book_id, chapter_id):

book_id 对应表 book_id | chapter_id 对应表 id

问题是 chapter_id 不是连接的……
比如:
/book/1/100 > 内容的第一章
/book/1/123 > 内容的第二章
/book/1/129 > 内容的第三章

我想实现:
如果当前页面 内容的第二章 (/book/1/123)那上一篇(paginate.prev)是/book/1/100

这种情况应该如何做呢? paginate 如何写……

flask sqlalchemy python

Luigi 10 years, 9 months ago

 # next
Book.query.filter(Book.book_id == book_id, Book.id > chapter_id).order_by('id').first()
# pre
Book.query.filter(Book.book_id == book_id, Book.id < chapter_id).order_by('id desc').first()

假设对于同一个book_id,chapter的顺序和id的顺序一致

beauty answered 10 years, 9 months ago

Your Answer