I’ve written two gadgets for helping me when
developing Django sites. Since they might be useful
to others, I thought I would mention them here.
ibofobi.utils. developer_http
The first is a web-server which re-exec’s itself
after every request, so that all resources are
reloaded for every request. It has worked very well
for me. It lives as ibofobi.utils.developer_http.py
in http://mel.ibofobi.dk/~sune/r/ibofobi.git.
You can either execute it directly, with --bind
and --port (it defaults to all interfaces port
8080). Or if you just want to WSGI-server in there
you can import BaseWSGIServer from the module.
ibofobi.middleware. template_dirs_hacker
The second gadget is a middleware which munges django.conf.settings.TEMPLATE_DIRS for every request. This is how I use it in my settings.devel:
from main import *
import admin
ROOT_URLCONF = 'settings.urls.devel'
MIDDLEWARE_CLASSES = ('ibofobi.middleware.template_dirs_hacker.TemplateDirsHacker',) + MIDDLEWARE_CLASSES
ADMIN_MEDIA_PREFIX = admin.ADMIN_MEDIA_PREFIX
TEMPLATE_DIRS_MAPPING = (
('/admin/', admin.TEMPLATE_DIRS),
('/', TEMPLATE_DIRS),
)
TEMPLATE_DIRS = []
And in my settings.urls.devel I have:
(r'^admin/', include('django.conf.urls.admin')),
(r'', include('settings.urls.main')),
So, when I request /admin/ I get the admin site
with the proper TEMPLATE_DIRS, and when I request
anything else I get the main site with the TEMPLATE_DIRS
for that.