Differences between devserver and Apache
Running with ./manage.py devserver is very handy, but things may not 'just work' when you move the site to Apache. (or other servers.)
- "Note that the Django development server automagically serves admin media files, but this is not the case when you use any other server arrangement." http://www.djangoproject.com/documentation/modpython/#serving-media-files
- devserver's current dir may not be the same as apache's. so if your view code references files with relative paths you will have trouble.
- some request.META keys are different, e.g. on the devserver the Content-Type is in request.META['CONTENT_TYPE'] while on mod_python that key exists but the value is always None and the actual value is in request.META['HTTP_CONTENT_TYPE']
- Default Apache config does not follow symbolic links, while the devserver does. (There are FollowSymLinks and other options if you need them. http://httpd.apache.org/docs/2.0/mod/core.html#options )
- devserver re-validates model changes automatically. Under apache, the django process has to be restarted to pick up model changes. "The development server automatically reloads Python code for each request." http://www.djangoproject.com/documentation/django-admin/#runserver-optional-port-number-or-ipaddr-port
- Devserver adds installed apps to sys.path, Apache does not. (best support I could find: "...manage.py, because it takes care of setting the Python path for you." http://www.djangoproject.com/documentation/django-admin/#pythonpath )