How can I be certain that my application is running on development server or not? I suppose I could check value of
settings.DEBUG and assume if
True then it's running on development server, but I'd prefer to know for sure than relying on convention.
server = request.META.get('wsgi.file_wrapper', None) if server is not None and server.__module__ == 'django.core.servers.basehttp': print('inside dev')
wsgi.file_wrapper might be set on META, and have a class from a module named
django.core.servers.basehttp by extreme coincidence on another server environment, but I hope this will have you covered.
By the way, I discovered this by making a syntatically invalid template while running on the development server, and searched for interesting stuff on the
Traceback and the
Request information sections, so I'm just editing my answer to corroborate with Nate's ideas.
I put the following in my settings.py to distinguish between the standard dev server and production:
import sys RUNNING_DEVSERVER = (len(sys.argv) > 1 and sys.argv == 'runserver')
This also relies on convention, however.
(Amended per Daniel Magnusson's comment)