我剛剛創建了一個燒瓶應用程序,到目前爲止,我的「Hello world!」有一個路由器。模板。Flask應用程序中的常用文件夾/文件結構
我想添加一些(很多)更多的功能,但我不知道如何構建應用程序目錄。
構建Flask應用程序的最常用方法是什麼?例如,我應該爲我的所有路線創建一個routes.py
嗎? SQLAlchemy的東西去哪了? 模型應該在models.py
?
我剛剛創建了一個燒瓶應用程序,到目前爲止,我的「Hello world!」有一個路由器。模板。Flask應用程序中的常用文件夾/文件結構
我想添加一些(很多)更多的功能,但我不知道如何構建應用程序目錄。
構建Flask應用程序的最常用方法是什麼?例如,我應該爲我的所有路線創建一個routes.py
嗎? SQLAlchemy的東西去哪了? 模型應該在models.py
?
您應該查看Flask文檔的Patterns部分中的Larger Applications頁面:http://flask.pocoo.org/docs/patterns/packages/。這似乎是大多數人在應用程序調用包而不是模塊時遵循的模型。我相信views.py
就是你所說的routes.py
。之後,模型將在models.py
,形式將進入forms.py
等
我認爲燒瓶是微觀框架,現在你必須決定如何創建文件和文件夾。
我用這樣的方式:
這是附近的Django結構
我建議你看到一些項目給你你想要什麼
您可以通過這裏的18.11模板,得到啓發,啓動你的應用程序開發
FlaskApp目錄的示例:
yourapp/
/yourapp
/run.py
/config.py
/yourapp
/__init__.py
/views.py
/models.py
/static/
/main.css
/templates/
/base.html
/requirements.txt
/yourappenv
run.py
- 包含將導入應用程序並啓動開發服務器的實際python代碼。
config.py
- 爲您的應用程序存儲配置。
__init__.py
- 初始化您的應用程序,創建一個Flask應用程序實例。
views.py
- 這是定義routes
的地方。
models.py
- 這是您爲應用程序定義模型的地方。
static
- 包含靜態文件,即CSS,Javascript,圖像
templates
- 這是您存儲您的html
模板的位置即index.html
,layout.html
requirements.txt
- 這是您存儲包依賴關係,您可以使用pip
yourappenv
- 你的虛擬環境對於發展
對於'require.txt'和'venv'。 –
我想說,如果你分割應用程序中使用分區,而不是功能結構。 我提倡這一點,因爲您在任何時候都更有可能在這些部門組件中的一個上工作。
這種類型的結構非常適合市場或SaaS應用程序,其中不同的用戶組使用不同類型的視圖。 API only flask應用程序我可能會使用功能分割。
以下是來自Flask Blueprints的示例。藍圖基本上是文件化的建議,如何將Flask應用程序拆分爲更易於管理的部分。更多信息,請訪問:http://exploreflask.com/en/latest/blueprints.html
以下是分割分割的示例。瞭解每個功能如何組合在一起。
yourapp/
__init__.py
admin/
__init__.py
views.py
static/
templates/
home/
__init__.py
views.py
static/
templates/
control_panel/
__init__.py
views.py
static/
templates/
models.py
這裏是功能實例>
yourapp/
__init__.py
static/
templates/
home/
control_panel/
admin/
views/
__init__.py
home.py
control_panel.py
admin.py
models.py
我不明白的是,爲什麼我們只有一個文件,爲所有的車型? 「每檔一檔」練習呢?如果某些模型相當大?我們是否應該將一些邏輯轉移到其他模塊中?而且,如果我想讓我的模型處於單獨的文件中,我應該只創建一個模型「模型」?謝謝! – lime
@lime,當有更多的模型時如何構建項目?我可以幫助我。 –
@lime我不是「每個文件一個類的粉絲」。我發現更長,重複的導入路徑非常麻煩。除非將所有內容都導入到'__init __。py'文件中,否則這些導入文件會導致很多額外的導入操作,從而導致難以維護。也就是說,你可以自由地構建你的項目,但是你願意。我只是提供許多人遵循的會議。 – dirn