Spec-Zone.ru › Django 4.0

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

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

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

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

  • Как использовать Django с Gunicorn
  • Как использовать Django с uWSGI
  • Как использовать Django с Apache и mod_wsgi
  • Как аутентифицироваться на базе данных пользователей Django из Apache

Объект приложения application

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

Команда startproject создает файл <project_name>/wsgi.py, который содержит такой вызываемый application объект.

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

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

Настройка модуля настроек

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

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

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

Примечание

Поскольку переменные среды действуют для всего процесса, это не работает, когда вы запускаете несколько сайтов Django в одном процессе. Это происходит с mod_wsgi.

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

Применение WSGI-среднего ПО

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

from helloworld.wsgi import HelloWorldApplication
application = HelloWorldApplication(application)

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

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/4.0/howto/deployment/wsgi/index/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API