由于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
新聞熱點
疑難解答