Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
139 lines (88 sloc) 4.68 KB


description:Generates Django Project Skeletons Simply and Properly
Copyright: © 2011 Justine Alexandra Roberts Tunney
license:Licensed MIT


django-bone = django + bootstrap + less + coffeescript + sphinx + south + reversion + jquery + js/css minimization + debug-toolbar + gravatar + pyflakes + pep8 + git + virtualenv + pip + tests

Starting a serious Django project? Not a newbie? Good. django-bone will save you a few days worth of work by generating all the annoying boilerplate code for you. One simple command is all you need to create a skeleton website with all the infrastructure you'll need as your project grows.

Here's a screenshot of what you get:

![Django-Bone Screenshot](


Here's how you use django-bone, assuming python/pip/virtualenv are installed:

sudo ./
cd /opt
django-bone myapp

The following tools and libraries will also be configured:

  • Twitter Bootstrap: The hippest way to make clean looking websites.
  • lessc: Less is a very popular compiler that makes CSS easier to use by extending its syntax. Less is used by Twitter Bootstrap.
  • coffeescript: Similar to Less, this is a compiler that gives javascript a more eloquent syntax that's easy to learn and requires far less typing.
  • south: The standard for managing database schema changes and migrations. It's one of the best third party libraries available for Django and is so easy to use that I can't possibly imagine why you wouldn't want to use it.
  • reversion: Allows you to enable version control on your models in the Django Admin. The generated Article model (commented-out) serves as an example of how to use this.
  • django-debug-toolbar: A very popular tool for debugging everything. This will magically appear when in development mode.
  • sphinx: Generates the prettiest documentation. Inline autodoc style is used by the generated code.
  • pip/virtualenv: The smartest way to install unstable Python software.
  • jquery: Who doesn't use jquery?
  • modernizr: Helps you use hip HTML5 features with cross browser support.

Django 1.4 is used with the following cool features configured:

  • Time zone awareness
  • The secure password hashing extension I wrote!
  • Cross-site request forgery (CSRF) protection
  • Browser-side session data storage (signed cookies)
  • Internationalization (localization must be used explicitly)
  • Static file framework
  • Logging / error reporting system
  • Memcached and cached template loading

Here's the files django-bone generates for you:

  • README.rst: A simple README file using RestructuredText markup.
  • doc/index.rst: Your main sphinx documentation page.
  • All Python projects should have this! Even if you don't want to put your program on the cheese shop.
  • scripts/myapp: Command that gets installed to your bin/ folder. This replaces ./ --settings=myapp.settings.
  • scripts/myapp-dev: Command that gets installed to your bin/ folder. This replaces ./ --settings=myapp.settings_dev.
  • .gitignore: Preloaded with a list I've built over the years.
  • conf/init.d/myapp: This is a script for linux systems to automate starting/stopping the gunicorn backend webserver.
  • conf/nginx/ Shows you how to configure nginx to reverse proxy to your gunicorn server.
  • myapp/ A simple URL dispatcher.
  • myapp/ Provides an index page view to get you started.
  • myapp/ A placeholder for your database tables.
  • myapp/ Some middleware classes that fix stuff.
  • myapp/ All my favorite production defaults!
  • myapp/ DEBUG mode settings. This overloads
  • myapp/ Overload settings ONLY for this install.
  • myapp/ Provides a few simple regression tests to make it easy for you to get you started with automated testing. Only amateur software engineers forget to write tests so I figured you might want these.
  • myapp/ Gets you started customizing Django admin gui.
  • myapp/management/commands/ A happy js/css/png minify command.
  • myapp/templates/myapp/base.html: Master HTML5 template based on
  • myapp/templates/myapp/index.html: Home page (overrides base.html)
  • myapp/media/myapp/css/myapp.css: Main CSS file based off normalize.css and
  • myapp/media/myapp/js/myapp.js: Placeholder for your javascript code.
  • myapp/templates/404.html: Page not found page.
  • myapp/templates/500.html: Internal server error page.