Code


Version 8 (modified by ingmar, 6 years ago) (diff)

add request.META info, some reformatting of article

Differences between Devserver and Apache

Running with ./manage.py devserver is very handy, but it may allow you to create things that won't 'just work' when you move the site to Apache. (or other servers.)

As I run into troubles porting my site, I hear things like "maybe it is because X." I call this a rumor. I also hear "Yes, X happens because Y." If Y supports X, I call it a confirmed rumor. So onto the rumors.

Rumors

  • Devserver adds installed apps to sys.path, Apache does not.
  • to setup same path as devserver, you need both the directory the settings.py file is in and the parent of that directory.
  • devserver serves up static files. apache does too, but you need to tell it to.
  • devserver re-validates model changes automatically. Under apache, the django process has to be restarted to pick up model changes.

Facts

  • devserver's current may not be the same as apache's. so if your view code references files with relitive 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']