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.