2015-10-13 114 views
3
run.py 
static/ 
templates/ 
tests/ 
config.py 
models.py 

我在run.py中創建了一個Flask類的實例,並定義了視圖。我計劃移動視圖,以便它們與run.py文件分開,並且只需要run.py文件實例化Flask類。但是,我也有很多非視圖函數被每個視圖函數調用並實現應用程序邏輯。構建大型Flask應用程序?

什麼是重新組織這些視圖和邏輯函數以創建一個好的應用程序結構的方法?我是否應該爲每個視圖有一個包含與每個視圖函數對應的邏輯函數的視圖/文件夾?我應該將邏輯功能組合在另一個單獨的文件夾中嗎?

+0

[Flask應用程序中的公用文件夾/文件結構]可能的重複(http://stackoverflow.com/questions/14415500/common-folder-file-structure-in-flask-app) – dirn

回答

2

文檔中有一些不錯的guidance。 Flask並沒有強加大量的強制結構,而是在正確的軌道上養成爲了自己的理智而構建項目的習慣。這可能完全留給你,你想如何做到這一點。可能有很多意見在那裏

我傾向於做的是創建一個典型的大多數python項目的結構。您可能想要使用應用程序工廠模式和藍圖。

myapp 
/myapp 
    /home 
     views.py 
    /templates 
    /static 
    factory.py 
    core.py 
    models.py 
runserver.py 
config.py 

Mattupstate對這個問題的好blog article。還有Fbone。米格爾格林伯格在他的Flask書中也有一章。

+0

我正要寫出來一個基於米格爾格林伯格的書的答案,所以我只想+1這個建議。在使用Flask之前,我來自沒有Web開發經驗的背景。我認爲這是一本很好的書,有一章專門討論這個「大型應用程序結構」。事實上,如果你下載https://github.com/miguelgrinberg/flasky和'git checkout 7a',你會看到一個大型應用程序結構的例子。 – wgwz

+0

是的,這本書很棒。我用他的書來學習燒瓶。我寫了一些應用程序來完成工作中的一些項目。兩年後,我找到了一份工作,維護一個非常大的應用程序,這個應用程序的組織方式與其他遷移和部署策略不同。這本書雖然是一個很好的起點。 – m1yag1