我正在构建一个 webapp,我的一个 .py 文件保留了很多 SQL 函数。这些函数连接到数据库、执行查询、获取结果并关闭连接。
例子:
def get_user_data():
conn = MySQLdb.connect(host, port, user, passwd, db)
cursor = conn.cursor()
query = "CALL `RANDOM_PROCEDURE`(%s)"
data = None
try:
cursor.execute(query,[random_param])
data = cursor.fetchone()
except Exception as error:
print(error)
return error
finally:
cursor.close()
conn.close()
return data
其中一个页面在呈现页面之前运行其中的 3 个功能:
@app.route('/app', methods=['POST', 'GET'])
def app_home():
if request.method == 'GET':
q1 = get_user_data()
q2 = get_weather_data()
q3 = get_product_data()
return render_template('app/index.html', param1=q1, param2=q2, param3=q3)
此页面加载时间过长,因为查询是一个接一个地执行的。我曾尝试在单独的线程中(使用 Process)同时运行它们,但 Flask 告诉我我脱离了上下文。
有什么建议么?