以下是cookiecutter-django项目布局模板。可以在此处找到其他类似的项目模板。Django1.8默认生成的布局生成命令:$django-admin.pystartprojectmysite$cdmysite$django-admin.pystartappmy_app生成的布局:mysite/manage.pymy_app/__init__.pyadmin.pymodels.pytests。pyviews.pymysite/__init__.pysettings.pyurls.pywsgi.pycookiecutter-django的项目布局///topmost:仓库根目录是项目拥有的root文件所在目录,除了放置外,还有其他一些关键内容,如README.rst、docs/目录、.gitignore、requirements.txt文件等部署相关文件。你应该在这个目录下运行django-admin.pystartproject来创建一个Django项目(比如创建一个项目根目录)第二层:项目根目录这个目录是实际Django的根目录项目中,所有Python代码文件都放在及其子目录下。第三层:配置文件根目录该目录包含设置模块和根URLConf(urls.py)。该目录必须是有效的Python包(带有__init__.py文件)。配置文件根目录下的文件都是django-admin.pystartproject命令创建的。项目布局示例icecreamratings_project/.gitignoreMakefiledocs/README.rstrequirements.txticecreamratings/manage.pymedia/#仅限开发!products/profiles/ratings/static/templates/config/__init__.pysettings/urls.pywsgi.py其中icecreamratings_project是。其他文件/目录说明如下:文件或目录用途README.rst和docs/项目文档Makefile包含一些简单的部署任务或宏,复杂的部署可以使用Invoke、Paver和Fabricrequirements.txt项目依赖包列表icecreamratings/目录对应的目录在icecreamratings_project/icecreamratings/目录下,即在目录下,有如下文件/目录:文件或目录purposemanage.pyDjango默认生成,不要修改media/only针对开发环境:用户生成的静态文件,比如上传的照片等。大型项目会分离静态文件,单独部署静态/非用户生成的静态文件,比如CSS、JavaScript、图片等。大项目会把静态文件单独放到单独的deployments/目录下一个DjangoApp目录profiles/目录另一个DjangoAPP目录ratings/目录另一个DjangoAPP目录templates/目录Django项目级模板目录如何处理Virtualenv?Virtualenv目录不要和项目文件放在一起,应该放在单独的目录下。所有的依赖文件信息都写在了requirements.txt中,所以不需要再将Virtualenv目录下的内容加入到版本控制管理中。例如这个项目:在MacOSX和Linux上,对应的项目目录和Virtualenv目录可以是:~/projects/icecreamratings_project/~/.envs/icecreamratings/在Win上,对应的项目目录和Virtualenv目录可以是:c:\projects\icecreamratings_project\c:\envs\icecreamratings\如果使用virtualenvwrapper(MacOSX或Linux)或virtualenvwrapper-win(Windows),那么Virtualenv的根目录将是“~/.virtualenvs/”,并且该项目对应的Virtualenv目录将是:~/.virtualenvs/icecreamratings/。列出当前环境的所有依赖包:$pipfreeze--local通过startproject使用cookiecutter项目模板cookiecutter-django,支持Python2.7+和3.3+,Django1.8+。安装cookiecutter:$pipinstallcookiecutter运行cookiecutter,指定模板路径生成项目:$cookiecutterhttps://github.com/pydanny/cookiecutter-django运行时会询问项目名称、数据库配置等相关项目配置信息。运行示例:Cloninginto'cookiecutter-django'...remote:Countingobjects:2358,done.remote:Compressingobjects:100%(12/12),done.remote:Total2358(delta4),reused0(delta)0),pack-reused2346Receivingobjects:100%(2358/2358),461.95KiB,done.Resolvingdeltas:100%(1346/1346),done.project_name(默认为“project_name”)?icecreamratingsrepo_name(默认为“icecreamratings”)?icecreamratings_projectauthor_name(默认为“你的名字”)?DanielandAudreyRoyGreenfeldemail(默认为“audreyr@gmail.com”)?hello@twoscoopspress.orgdescription(默认为“项目的简短描述。”)?用于对冰淇淋口味和品牌进行评级的网站.domain_name(默认为“example.com”)?icecreamratings.audreyr.comversion(默认为“0.1.0”)?0.1.0时区(默认为“UTC”)?America/Los_Angelesnow(默认为“2015/01/13”)?2015/05/18year(默认为“2015”)?use_whitenoise(默认为“y”)?github_username(默认为“audreyr”)?twoscoopsfull_name(默认为“AudreyRoy”)?Daniel和AudreyRoyGreenfeld转到生成的项目目录$cdicecreamratings_project创建git存储库$gitinit$gitadd.$gitcommit-m"firstawesomecommit"$gitremoteaddorigingit@github.com:somebody/icecreamratings.git$gitpush-uoriginmaster还忘记修改README.rst文件参考:Django的两勺:Django1.8的最佳实践