2014-07-25 79 views
1

我有一个大型的Flask项目(使用Flask-SQLAlchemy),它有一个core组件,它涉及处理大量数据,然后将结果保存到数据库。它有它自己的一套Flask-SQLAlchemy模型。拆分Flask应用程序?

还有一个web组件,它为API定义了一个Flask应用程序,为web前端定义了另一个Flask应用程序,这两个组件处理了core组件的处理结果。 web部分还定义了一些它自己的模型(用户模型),其中core组件不需要。

为了便于开发和组织,我想将core组件拆成单独的项目,并将web零件保留在其自己的项目中。这两个组件已经相当分离,所以它应该是一个简单的过程。

我弄不清楚的唯一部分是:web组件如何访问core组件的模型?我不想在两个项目中复制模型定义。

+0

你能不能用setup.py为核心创建一个python包并将其安装到每个Web组件中? –

+0

这就是我正在考虑的方法,但无法将我的头围绕处理数据库迁移的好方法。如果任何'core'软件包模型发生变化,会发生什么?我会再试一次,谢谢。 – frnsys

+0

如果是这样的话,他们都使用完全相同的核心,为什么没有API和Web前端调用的内部API?要么或者让网页前端使用您的API前端 –

回答

0

这听起来像你想看看Flask的Blueprints这将允许你模块化你的代码,如你所描述的,同时允许你也继承一些核心的东西,如SQLAlchemy模型。