項(xiàng)目結(jié)構(gòu)原則
Flask 不同于大多數(shù)的Web框架耙箍,它并沒有特定的組織方式景馁,項(xiàng)目機(jī)構(gòu)完全由開發(fā)者決定终息。但是項(xiàng)目結(jié)構(gòu)都有一定的原則。以下原則可以參考:
- 層次不要太深具练。建議目錄深度不超過4級乍构。
- 層次不要太平。盡量使用目錄代替模塊文件扛点。
- 善用藍(lán)圖哥遮。達(dá)到良好的擴(kuò)展性岂丘。
- 項(xiàng)目結(jié)構(gòu)要在開發(fā)過程中慢慢改進(jìn)。
項(xiàng)目結(jié)構(gòu)推薦
參照《Flask Web開發(fā)》這本書昔善,推薦如下項(xiàng)目結(jié)構(gòu):
|-flasky
|-app/
|-templates/
|-static/
|-main/
|-__init__.py
|-errors.py
|-forms.py
|-views.py
|-__init__.py
|-email.py
|-models.py
|-migrations/
|-tests/
|-__init__.py
|-test*.py
|-venv/
|-requirements.txt
|-config.py
|-manage.py
這種結(jié)構(gòu)有4個頂級文件夾:
- Flask程序一般都保存在名為app的包中元潘;
- 和之前一樣,migrations文件夾包含數(shù)據(jù)庫遷移腳本君仆;
- 單元測試編寫在tests包中翩概;
- 和之前一樣,venv文件夾包含Python虛擬環(huán)境返咱。
同時還創(chuàng)建了一些新文件:
- requirements.txt列出了所有依賴包钥庇,便于在其他電腦中重新生成相同的虛擬環(huán)境;
- config.py存儲配置咖摹;
- manage.py用于啟動程序以及其他的程序任務(wù)评姨。
為了幫助你完全理解這個結(jié)構(gòu),下面我通過一個實(shí)例來練習(xí)使用這種項(xiàng)目結(jié)構(gòu)萤晴。
項(xiàng)目實(shí)例
首先參照上面介紹的結(jié)構(gòu)創(chuàng)建項(xiàng)目吐句,項(xiàng)目結(jié)構(gòu)如下
結(jié)束
后續(xù)我再介紹如何將這個項(xiàng)目填充內(nèi)容,實(shí)現(xiàn)使用 Ansible 的 web管理系統(tǒng)店读。感興趣的朋友可持續(xù)關(guān)注嗦枢,歡迎點(diǎn)贊,謝謝屯断。