对于 Django 项目布局,旧的公认答案规定,制作一个glue
与来自各种其他应用程序(例如主页)的数据相关联的应用程序是一种很好的做法。
既然 Django 1.4 会自动创建../project_name/project_name/
文件夹,那我应该把project_name
应用程序当作glue
应用程序使用吗?还是我应该仍然制作一个应用程序并单独core
留下自动创建的应用程序?project_name
在过去的几个项目中,我发现以下布局运行良好:
上面的common
文件夹包含所有不适合其他地方的东西,包括 base urls.py
、sitemaps.py
、通用模板标签、通用上下文处理器等。我发现这很干净且易于维护。最重要的是,整个目录可以很容易地检入 git。
我不会担心 1.4 的默认布局。做任何适合你的事情。
- apps/
- /foo_app
- /bar_app
- common # The equivalent of the glue app you talk about
- confs # Uwsgi/supervisor/nginx/gunicorn etc. configurations
- /production
- /staging
- /dev
- docs
- fixtures
- media
- static
- requirements # for `pip freeze > ...`
- /production
- /staging
- /development
- scripts
- settings
- private.py # Secret Key etc., not put on VCS
- database.py # DB Settings, also no in VCS
- development.py
- production.py
- staging.py
- default.py # All Django's settings
- custom.py # Custom application settings
- templates