This project contains templates for creating a new Django project. It’s like running django-admin.py startproject but it creates a more complete application skeleton.
All you need to do is install the package from PyPi like so. Note that it will install PasteScript, Cheetah and Fabric. So you may want to create a new virtualenv.
python easy_install django-project-templates
Alternatively you can install it from a git clone with:
python setup.py install
And then creating a project skeleton is as simple as:
paster create --template=django_project example_project
Note that this project skeleton is still in flux. It definitely contains some things that are personal preference but it hopefully makes up for it with useful tools like a reasonably complete fabric based deployment setup and configs for CruiseControl. And yes, more documentation would be nice.
The folks over at the Chicago Tribune have kindly contributed a template they use for their projects. You can find more about that on this blog post.
paster create --template=newsapps_project example_project
The newsapps_project template is very similar to django_project. Major differences include:
- A much larger fabric deployment script with a bunch of goodies
- Removed and refactored config directories. There are now dirs for production, staging and common.
- Tightly integrated with Chicago Tribune’s News apps Amazon EC2 Image (ami-ff17fb96 on us-east)
- Removed CruiseControl stuff.
- Added a ‘manage’ script in the project root to make management commands accessible.
I added a new template layout. It’s much simpler than the News Apps template; very similar to Django’s out-of-the-box project layout. It follows the default pattern, but includes all the fancy extra stuff you need to deploy your project as a wsgi application in separate staging and production environments.
To use the simple project template, follow the installation instructions below and then create a new project:
paster create --template=simple_project exampleproject
When you name your project, use alphanumeric characters only. The project name is used throughout the template for things such as database usernames and python packages, so it has to be über-compatible. If you have a special database name or something you have to use, don’t fret, you can customize all the settings. We just like opinionated software.