我想创建返回大量数据的 Flask 应用程序,但问题是,当我请求 600 万条记录等庞大数据集时,我的 api 崩溃了。我想制作一个提供流数据的 Flask 应用程序,我一次只发送 100000 条记录。
我的应用程序是什么样的:
import clickhouse_connect
import orjson
from flask import Flask
app = Flask(__name__)
@app.route("/")
def send_data():
client = clickhouse_connect.get_client(host='XXXX', port=XXXX, username='XXXX', password='XXXXX', database = 'XXXXX')
df = client.query_df("SELECT * FROM Table_Name")
#table_df.to_dict(orient='records')
print(type(df.to_dict(orient='dict')))
return df.to_dict(orient='dict')
欢迎提出建议,让我的申请更快。
听起来您正在使用客户端渲染,它试图立即将所有这些记录渲染给客户端。我建议在前端初始化服务器端渲染,例如使用 DataTables js 或类似的库来显示数据。然后,DataTables 会针对表格的每次绘制向您的服务器发出 Ajax 请求。虽然不一定对返回的记录数量具有有限的控制,但它通常只会返回屏幕上可见显示的记录。但是,您必须在服务器上处理分页、排序和搜索的逻辑,因为这些功能将不再由客户端管理。