我有一个可用的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响应的方法,但对我来说这个问题已经关闭了。