• 3.1
  • 3.2
  • 6.1
  • Версия документации: 5.0

Как развертывать приложение WSGI

Основной интерфейс развертывания Django — WSGI, стандарт для веб-серверов и приложений.

Команда управления Django startproject устанавливает для вас минимальную конфигурацию WSGI по умолчанию, которую вы можете настраивать по мере необходимости для своего проекта.

Django включает в себя документацию по началу работы для следующих серверов WSGI:

Объект application

Ключевой концепцией развертывания с помощью WSGI является вызываемый application, который сервер приложений использует для взаимодействия с вашим кодом. Обычно он это объект с именем application в модуле Python, доступном для сервера»

The startproject command creates a file <project_name>/wsgi.py that contains such an application callable.

Он используется как сервером разработки Django, так и в продакшене.

Серверы WSGI получают путь к application из своей конфигурации. Встроенный сервер Django, а именно команда runserver считывает его из настройки WSGI_APPLICATION. По умолчанию он установлен на <project_name>.wsgi.application, что указывает на вызываемое application в <project_name>/wsgi.py.

Конфигурирование модуля настроек

Когда сервер WSGI загружает ваше приложение, Django необходимо импортировать модуль настроек — именно там лежат все конфигурации вашего приложения.

Django использует переменную среды DJANGO_SETTINGS_MODULE для нахождения соответствующего модуля настроек. Она должна содержать путь к модулю настроек. Вы можете использовать другое значение для разработки и производства; все зависит от того, как вы организуете свои настройки.

If this variable isn’t set, the default wsgi.py sets it to mysite.settings, where mysite is the name of your project. That’s how runserver discovers the default settings file by default.

Примечание

Если эта переменная не задана, то по умолчанию wsgi.py устанавливает ее в mysite``settings, где mysite — это имя вашего проекта. Вот как runserver обнаруживает файл настроек по умолчанию.

Чтобы избежать этой проблемы, используйте режим демона mod_wsgi с каждым сайтом или переопределите значение из среды, принудительно включив os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings" в вашем wsgi.py.

Применение WSGI middleware

Чтобы применить WSGI middleware, вы можете обернуть объект приложения. Например, вы можете добавить эти строки в конец wsgi.py:

from helloworld.wsgi import HelloWorldApplication

application = HelloWorldApplication(application)

Вы также можете заменить приложение Django WSGI на пользовательское приложение WSGI, которое позже делегирует полномочия приложению Django WSGI, если вы хотите объединить приложение Django с приложением WSGI другого фреймворка.

Back to Top