Flask和Jinja2中的异步数据库调用

时间:2015-03-12 16:31:49

标签: python mysql flask

我的应用从第三方API和我的数据库中读取信息,然后返回带有数据的呈现模板。

我的数据库(MySQL)很慢,我认为Flask只在数据库调用完成后呈现我的页面。有没有办法让这个异步?或者有没有办法在用户点击我的应用中的页面时单独调用数据库?

1 个答案:

答案 0 :(得分:1)

不,在获得渲染模板所需的数据之前,无法渲染模板。考虑优化您的查询。假设您正在使用Flask-SQLAlchemy,您可以使用Flask-Debugtoolbar来检查渲染模板时正在运行的查询数。

通常,数据库访问速度相当快。可能发生的事情(尽管您没有显示任何代码来确认这一点)是您在访问关系时会产生额外的查询。如果要渲染实例列表,并在每个实例上访问关系,则这将是实例的1个查询和一个用于加载每个实例的关系的查询。考虑使用eager loading在单个查询中预加载关系。