由于Django没有象rails一样指定项目的目录结构规范,很多人都对django项目的目录结构要如何组织而感到困惑。为此我又新创建了一个开源项目dj-scaffold(django的脚手架)。这个项目用于自动生成一个标注化的django项目和app。
项目地址:https://github.com/vicalloy/dj-scaffold
安装
已经发布到了pypi,所以你可以用pip或easy_install 来进行安装。
1
2
3
|
pip install dj - scaffold easy_install dj - scaffold |
使用
dj-scaffold主要提供了两个命令,dj-scaffold.py和lbstartapp。
dj-scaffold.py
该脚本用于取代django的startproject命令。使用方式如下:
1
2
|
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来启动测试服务器。
项目对应的目录结构如下:
注:文件太多,去掉了部分不重要的文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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默认目录也都给生成了出来。对应目录结构如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
| + 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 |