Python Flask上有Singleton模式吗?

时间:2018-02-27 22:25:02

标签: python xml xslt flask

我正在编写一套带有基于Web的界面的工具,这是一个非常简单的应用程序,所以我要使用烧瓶。

其中一个工具是XSL转换器工具,我在其中加载xslt模板,xml文件,该工具将返回转换结果。

问题是其中一个xslt非常复杂,它从其他xslt导入,其中一些很大。

所以我正在考虑实现一个单独的机制来加载lxml转换器实例(lxml.etree.XSLT)并将此实例保存在一个可以从每个请求访问的变量上,并避免创建一个新的实例每个请求都有变压器。

我的问题是,在启动(或部署)应用程序时,有一个类可以用来在flask上创建单例实例?

我在Java中使用@Singleton bean知道类似的机制,但我无法在烧瓶文档中找到任何内容。

1 个答案:

答案 0 :(得分:1)

flask.current_app功能提供了一种使用Singleton模式的方法。

https://flask.palletsprojects.com/en/1.0.x/appcontext/#manually-push-a-context