我编写了简单的代码,用于在表中显示来自SQLite数据库的数据。这个表已经包含了浏览整个数据库内容的页面。
问题是现在整个数据库一次加载到内存中。如何将对服务器的查询拆分为页面?第一部分,即在页面首次运行时加载和显示有限数量的结果,并不困难:
list_of_games = list_of_games.order_by(GamesDatabase.date_added)[0:10]
但是如何使页面发送查询下一个结果(例如11-20),并显示他们只有按下按钮后(例如"下一页")?我想创建两个单独的按钮:"下一页"和"上一页",这将负责
我正在使用Python与Flask (with SQLalchemy), SQLite.
PYTHON
@app.route("/test")
def test():
list_of_games = GamesDatabase.query
# print(request.args)
if "rating_min" in request.args:
rating_min = request.args.get("rating_min", 1, int)
list_of_games = list_of_games.filter(GamesDatabase.rating >= rating_min)
if "rating_max" in request.args:
rating_max = request.args.get("rating_max", 100, int)
list_of_games = list_of_games.filter(GamesDatabase.rating <= rating_max)
if "genre" in request.args:
list_of_games = list_of_games.filter(GamesDatabase.genre == request.args["genre"].upper())
list_of_games = list_of_games.order_by(GamesDatabase.date_added)
# args = []
# if request.args:
# for arg, val in request.args.items():
# args.append({"name": arg, "value": val})
return render_template("test.html", list_of_games=list_of_games) #args=args