Skip to content
Paul Whipp edited this page Jul 17, 2014 · 1 revision

Summary

The cccs project uses the Django framework to serve one or more websites using a collection of 'applications' which are ultimately no more than Python modules.

Django is just a python wsgi application at its core. It uses a single settings module, sourced by the value of the DJANGO_SETTINGS_MODULE environment variable and the url patterns specified in a single url.py file to determine how it responds to any incoming request.

A url typically dispatches to a view function that returns a response. Django supplies quite a few built in view functions and typically abstracts the function into an instance of a view class for programming convenience and clarity.

The most common view functions obtain data from the database using the Django object model and insert it into a 'context'. This context is then passed to a template engine along with a template in order to produce the html that will be supplied as the response.

Python

Python is our preferred language because it is faster and easier to work with than the alternatives. We could have possibly chosen Ruby but the greater legibility and superior introspective capabilities of Python tipped the balance in its favour.

Django

Documentation

Templates

Object Relational Model

Gunicorn

Nginx

Postgresql