2016-09-25 100 views
-2

你如何在Flask中的蓝图之间共享代码? 你使用什么结构?蓝图之间共享代码?

您是否创建单独的课程?如果是,你如何传递应用程序或数据库实例。

最佳做法是什么?

回答

1

要从任何模块访问应用程序实例,Flask提供全局对象current_app,该对象维护current context中的一个应用程序实例的引用。如果你想让你的应用程序的各种实例与不同的配置一起运行,这很有用。要使用它:

from flask import current_app 

从烧瓶文档

应用程序上下文中创建并在必要时摧毁。它 永远不会在线程之间移动,它将不会在 请求之间共享。因此,它是完美的地方,用于存储数据库连接 信息和其他东西。

Flask的文档很不错。所以看看。

+0

我会尽力......但我想更多的是分享代码,而不是状态。可能传递“db”或其他东西作为调用的一部分(可能)。 – user1019129

1

我认为这取决于你的代码。如果这是某种辅助功能或类别,您可以将它放到您的app附近的包装中。如果共享代码取决于上下文,则可能需要查看项目结构。正如前面答案中的miso所指出的那样:

Flask的文档很不错。所以看看。

特别是在Blueprints的部分。

但是,如果您确定项目结构良好,并且您仍然拥有大量共享代码,那么创建独立库或Flask-extension可能会非常有用。

无论如何,这一切都取决于你的代码。