Как развернуть с WSGI ¶
Основная платформа развертывания Django - это WSGI , стандарт Python для веб-серверов и приложений.
Команда startproject
Django manage по умолчанию использует минимальную конфигурацию WSGI, которую вы затем можете адаптировать к потребностям вашего проекта; затем эта конфигурация может использоваться любым сервером приложений, соответствующим стандарту WSGI.
Django содержит базовую документацию для следующих серверов WSGI:
Объект application
¶
Ключевой концепцией развертывания с помощью WSGI является исполняемый объект, application
который сервер приложений использует для взаимодействия с вашим кодом. Обычно это обеспечивается именованным объектом application
в модуле Python, доступном серверу.
Команда startproject
создает файл <nom_de_projet>/wsgi.py
, содержащий исполняемый объект application
.
Он используется как сервером разработки Django, так и производственными развертываниями WSGI.
Серверы WSGI получают путь к исполняемому файлу application
из своей конфигурации. Встроенный сервер Django, команда runserver
, считывает эту информацию из параметра WSGI_APPLICATION
. По умолчанию он <nom_du_projet>.wsgi.application
указывает на исполняемый файл application
в <nom_du_projet>/wsgi.py
.
Конфигурация модуля настроек ¶
Когда сервер WSGI загружает приложение, Django необходимо импортировать модуль settings
, в котором находится вся конфигурация вашего приложения.
Django использует переменную окружения DJANGO_SETTINGS_MODULE
найти settings
подходящий модуль . Он должен содержать путь к модулю settings
с синтаксисом, разделенным точками. Можно использовать разные значения между разработкой и производством; все зависит от того, как организовать настройки.
Если эта переменная не задана, файл по wsgi.py
умолчанию устанавливает ее значение monsite.settings
, где monsite
- имя вашего проекта. Так runserver
находит файл настроек по умолчанию.
Заметка
Поскольку переменные среды применяются ко всему процессу, они не работают, когда вы запускаете несколько сайтов Django в одном процессе. Это может произойти с mod_wsgi.
Чтобы избежать этой проблемы, используйте режим mod_wsgi 'daemon', каждый сайт имеет свой собственный процесс 'daemon', где переопределяет значение среды, вводя его в ваш файл .os.environ["DJANGO_SETTINGS_MODULE"] = "monsite.settings"
wsgi.py
Применение промежуточного программного обеспечения WSGI ¶
Применять По промежуточного слоя WSGI вы можете обернуть объект приложения. Например, вы можете добавить эти строки внизу
wsgi.py
:
from helloworld.wsgi import HelloWorldApplication
application = HelloWorldApplication(application)
Вы также можете заменить приложение WSGI от Django на пользовательское приложение WSGI, которое откладывает приложение WSGI от Django на потом, если вы хотите объединить приложение Django с приложением WSGI из другой системы приложений.