由於Django沒有象rails一樣指定項目的目錄結構規範,很多人都對django項目的目錄結構要如何組織而感到困惑。為此我又新建立了一個開源項目dj-scaffold(django的腳手架)。這個項目用於自動產生一個標註化的django項目和app。
項目地址:https://github.com/vicalloy/dj-scaffold
安裝
已經發布到了pypi,所以你可以用pip或easy_install 來進行安裝。
pip install dj-scaffold easy_install dj-scaffold
使用
dj-scaffold主要提供了兩個命令,dj-scaffold.py和lbstartapp。
dj-scaffold.py
該指令碼用於取代django的startproject命令。使用方式如下:
dj-scaffold.py projectname
在該命令執行後,將建立項目projectname。在項目的scripts目錄中提供了指令碼create_env.py和env.rc。
- create_env.py 執行該指令碼將自動初始化python虛擬環境。新產生的python虛擬環境在env目錄。
- env.rc 該指令碼使用者啟動python虛擬環境(source env.rc)。該指令碼同時為python manage.py設定了捷徑$mg。你可以在任何目錄調用$mg來執行django命令。比如你用$mg runserver來啟動測試伺服器。
項目對應的目錄結構如下:
註:檔案太多,去掉了部分不重要的檔案
dj-scaffold.py projectname |+docs/ #用於存放項目的相關文檔|+env/ #python虛擬環境,由指令碼自動產生|~requirements/ #第三方依賴包的存放位置| `-requirements.pip #pip的依賴說明檔案|~scripts/ #系統相關的指令碼| |-create_env.py #建立python虛擬環境(env目錄)| `-env.rc #進入python虛擬環境。同時提供python manger.py的捷徑$mg。可在任意目錄使用$mg。|~sites/ #Django的專案檔。在settings檔案中增加了部分預設配置。如資料庫預設使用sqlite,設定項目的模板以及靜態檔案目錄。| |+media/ #項目靜態檔案(使用者上傳)| |+static/ #項目靜態檔案(css、js等)| `+templates/ #項目模板|+tools/ #一些項目依賴的第三方工具包。如python虛擬環境初始化指令碼等。`~wsgi/ #項目部署用的wsgi檔案 `-dj_scaffold.wsgi
lbstartapp
lbstartapp作為django的擴充命令提供。將dj_scaffold加到INSTALLED_APPS後即可使用該命令。該命令將產生一個標準的app,相比django內建的startapp,lbstartapp將那些不太常用的app預設目錄也都給產生了出來。對應目錄結構如下:
|+management/ #命令目錄 |+static/ #靜態檔案目錄 |+templates/ #模板目錄 |+templatetags/ #tag目錄 |-__init__.py |-admin.py #admin管理背景models設定檔 |-forms.py |-models.py |-settings.py #app自己的settings檔案 |-tests.py |-urls.py #urls設定檔 `-views.py