2014-07-25 81 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模型。