Python 3.x 如何使用Flask对SQL Server搜索结果进行分页
我有一个flask应用程序,它正在查询SQL server数据库,以便在其中一个网页上显示图像结果。问题是当我得到多个结果时,由于结果的数量太多,页面加载变得非常慢。我找不到任何flask文档,其中使用SQL Server可以在一页上显示固定数量的结果,并在多页中显示结果集 我正在使用pymssql库获取结果,查询如下所示:Python 3.x 如何使用Flask对SQL Server搜索结果进行分页,python-3.x,flask,pymssql,Python 3.x,Flask,Pymssql,我有一个flask应用程序,它正在查询SQL server数据库,以便在其中一个网页上显示图像结果。问题是当我得到多个结果时,由于结果的数量太多,页面加载变得非常慢。我找不到任何flask文档,其中使用SQL Server可以在一页上显示固定数量的结果,并在多页中显示结果集 我正在使用pymssql库获取结果,查询如下所示: "SELECT [Id],[user], [post_text], [media_url], [media_type]FROM [{}].[dbo].[SM_POSTS]
"SELECT [Id],[user], [post_text], [media_url], [media_type]FROM [{}].[dbo].[SM_POSTS] WHERE Id = {}".format(DB,id)
有人能帮我一下吗?我假设你没有使用ORM
- 您可以(SQL Server 2012+)
- 使用查询参数控制页码,然后使用页码生成SQL查询
http://127.0.0.1:5000/my_route?page=2
将给出以下查询
SELECT [Id],[user], [post_text], [media_url], [media_type] FROM [mydb].[dbo].[SM_POSTS] WHERE Id = 1 ORDER BY [post_text] ASC OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY
谢谢你的回复!不幸的是,我的数据库在SQLServer2008中,我想我将无法使用您的解决方案
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/my_route')
def my_route():
page_no = int(request.args.get('page', 1))
results_per_page = 10
offset = (page_no-1) * results_per_page
my_db = 'mydb'
my_id = 1
query = """
SELECT [Id],[user], [post_text], [media_url], [media_type] FROM
[{}].[dbo].[SM_POSTS] WHERE Id = {}
ORDER BY [post_text] ASC
OFFSET {} ROWS
FETCH NEXT {} ROWS ONLY
""".format(my_db, my_id, offset, results_per_page)
# I am just returning the query itself
return query
if __name__ == "__main__":
app.run(debug=True)
SELECT [Id],[user], [post_text], [media_url], [media_type] FROM [mydb].[dbo].[SM_POSTS] WHERE Id = 1 ORDER BY [post_text] ASC OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY