使用 MySql 在 Flask 中分页

use*_*645 2 python mysql pagination flask

我对此进行了很多搜索。我得到的所有文章都包括 SQLAlchemy,但没有一篇涉及 mysql。我正在使用 Flask,我在 mysql 中有一个数据库,我需要在页面中显示数据。比如 1000 张图片,每页 10 张,所以 100 页。在mysql中我们可以借助limit来进行分页。路线可以是:

@app.route('/images', defaults={'page':1})
@app.route('/images/page/<int:page>')
Run Code Online (Sandbox Code Playgroud)

我想问的是,这就是分页所需的全部吗?或者我在这里忘记了一些重要的事情?mysql 语法是:

db = mysql.connect('localhost', 'root', 'password', 'img')
cursor = db.cursor()
cursor.execute('SELECT Id,Title,Img FROM image ORDER BY RAND() limit 20 offset 0;')
data = list(cursor.fetchall())
Run Code Online (Sandbox Code Playgroud)

获取前 20 个结果,但如何根据 pageno 获取下一个结果?Flask-paginate 库仅适用于 tSQLAlchemy。

Aar*_*shi 5

尝试这个

@app.route('/images', defaults={'page':1})
@app.route('/images/page/<int:page>')
def abc(page):
    perpage=20
    startat=page*perpage
    db = mysql.connect('localhost', 'root', 'password', 'img')
    cursor = db.cursor()
    cursor.execute('SELECT Id,Title,Img FROM image limit %s, %s;', (startat,perpage))
    data = list(cursor.fetchall())
Run Code Online (Sandbox Code Playgroud)

也许这会有所帮助。