blob: ee6eacb7b4e291763c2c2821e74678b03b223f95 [file] [log] [blame]
#!/usr/bin/env python
#
# Copyright 2007 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
"""Main handler script for running Django applications on App Engine."""
import logging
import os
from google.appengine.api import lib_config
_config_handle = lib_config.register(
'django', {'settings_module': os.getenv('DJANGO_SETTINGS_MODULE',
'settings')})
settings_path = _config_handle.settings_module
from google.appengine.ext.webapp import util
os.environ['DJANGO_SETTINGS_MODULE'] = settings_path
if os.environ.get('APPENGINE_RUNTIME') == 'python':
import google.appengine.ext.webapp.template
else:
try:
import django
except ImportError:
msg = (
'django must be included in the "libraries:" clause of your app.yaml '
'file when using the django_wsgi builtin.')
logging.error(msg)
raise RuntimeError(msg)
from django.core import management
from django.core.handlers import wsgi
try:
settings = __import__(settings_path)
management.setup_environ(settings, original_settings_path=settings_path)
except ImportError:
pass
app = wsgi.WSGIHandler()
def main():
"""Main program. Run the Django WSGIApplication."""
util.run_wsgi_app(app)
if __name__ == '__main__':
main()