如何缓存Flask-App-Builder视图?

时间:2017-01-07 21:45:49

标签: python caching flask flask-appbuilder

我有一个可用的Flask应用程序,其中包含非常广泛的 SQLite 数据库(~100k条目)。 我根据docs以最简单的方式努力用 Flask-App-Builder(FAB)来引导一些ModelView:

txt

而不是像这样启用它们:

class MyModelView(ModelView):
  datamodel = SQLAInterface(MyModel)
  list_columns = ['col1', 'col2']

工作正常。问题是,每次访问 list 视图时,它都是从头开始生成的 - 数据库查询,一些FAB处理,模板生成。它主观上很慢(挂钟几十秒;我不确定如何正确配置Flask应用程序)。

我认为在某些时候缓存FAB视图可能有助于加快速度,但我不确定如何去做。对于普通视图,我使用 Flask-Cache

appbuilder.add_view(MyModelView, 'Models')

所以,问题:

如何使用FAB ModelViews缓存? 有没有办法加快FAB ModelViews的工作?

谢谢!

结果

好的,在探索FAB源代码后,我发现可以重新定义ModelView或其父级的方法以获得所需的行为(在我的情况下 - 限制查看List视图并使用Flask-Cache缓存它)。然而,它将需要大量的代码,并且无视使用FAB的整个目的。 结果我搬到了 Flask-Admin 。它具有更简单的外观,并且不包括例如内置的身份验证,但在我的情况下它的工作速度非常快,只需很少的配置 - 它解决了我的问题

我仍然建议在少量数据(约1000个条目)的情况下尝试FAB,它功能更丰富,它的进一步发展可能会给我们一个非常整洁的产品。

顺便说一下,我还没有找到一种缓存FAB ModelView响应的方法,但对我来说这个问题已经关闭了。

0 个答案:

没有答案