Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Деплой приложения Django

Пример Django-приложения для деплоя можно найти на Гитхабе. Также у нас есть туториал с практическим примером развертывания Django-приложения в App Platform.

Сборка приложения

При сборке приложения используется следующая среда:

  • Python 3.10–3.14 (версия выбирается при создании приложения)
  • pip
  • gunicorn
  • Системные библиотеки для работы с PostgreSQL и MySQL

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

    

Если в проекте присутствует файл requirements.txt, дополнительно будет выполнено:

    

Для запуска по умолчанию используется команда:

    

Убедитесь, что файл manage.py находится в корне проекта и используется как точка входа в приложение.

Также вы можете задать переменные. Например, можно задать хосты, с которых Django может получать запросы. Для этого укажите ключ DJANGO_ALLOWED_HOSTS, а в значении задайте IP-адреса или хостнеймы. Можно указать несколько хостов через запятую, без пробелов. По умолчанию эта переменная принимает значение 127.0.0.1,localhost.

Для Django-приложений необходимо обязательно указать в настройках DEBUG=True, иначе статика не будет раздаваться.

Подробнее о настройках можно почитать в документации Django.

Устранение неполадок

Не удается выполнить развертывание

Если с развертыванием возникают проблемы, в первую очередь проверьте лог деплоя. Вы сможете определить, в какой момент что-то пошло не так. 

Зачастую проблемы связаны с командой запуска. Проверьте, что всё в вашей среде разработки работает с gunicorn. Убедитесь, что все модули, необходимые для запуска приложения, присутствуют в файле requirements.txt.

DisallowedHost at /Invalid HTTP_HOST

Проблема возникает в случае, если в файле settings.py не задано имя хоста. 

Данная настройка является мерой безопасности для предотвращения атак с подменой HTTP-заголовка Host (HTTP Host header attacks).

Для устранения проблемы нужно внести изменения в файл settings.py, указав в директиве ALLOWED_HOSTS используемый вами домен, например:

    

Вы также можете разрешить все домены, если не хотите использовать эту меру безопасности: 

    

Требования к приложению

Убедитесь, что приложение слушает 0.0.0.0, а не 127.0.0.1, иначе внешние подключения работать не будут.

Была ли статья полезна?
Ваша оценка очень важна