Как развернуть с 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 из другой системы приложений.

Copyright ©2020 All rights reserved