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

Render — это платформа хостинга, которая помогает вам легко развертывать ваши приложения. Независимо от того, создаете ли вы веб-серверы, статические веб-сайты, задания cron или контейнеры, этот инструмент поможет вам упростить процесс.
Если вы являетесь разработчиком в начале своей карьеры и вам нужно составить привлекательное резюме, резюме или портфолио, Render предлагает бесплатный уровень, который предлагает 1 ГБ емкости для хранения.
В этом руководстве мы рассмотрим, как развернуть приложение Django на платформе Render. Проект, который мы создаем, поможет вам эффективно продемонстрировать свои навыки кодирования и проекты, изучая развертывание.
Предпосылки
Чтобы следовать этому руководству, вам нужно настроить несколько вещей:
- Аккаунт на платформе Render
- Git-аккаунт
- PostgreSQL установлен
- Аккаунт на GitHub
Теперь давайте узнаем, как бесплатно развернуть веб-сервер Django. 🚀
Как настроить базу данных PostgreSQL
Сначала перейдите на панель инструментов Render и создайте базу данных PostgreSQL. Нажмите кнопку «Создать +», наведите указатель мыши на PostgreSQL и щелкните ее.

Затем определите параметры базы данных, дав имя экземпляру базы данных. Вы можете либо позволить Render определить имя для базы данных и пользователя, либо определить его самостоятельно.
Это руководство предназначено для начинающих, мы определим только имя экземпляра.

Выберите уровень бесплатного пользования и нажмите «Создать базу данных».
Примечание. Срок действия каждой бесплатной базы данных, созданной на Render, истекает через 90 дней после создания. Так что просто примите это к сведению и обновите, если это важный проект. Вы можете увидеть цены здесь.

Когда статус вашей базы данных показывает Доступно, это означает, что база данных успешно создана и готова к использованию.

Прокрутите эту страницу вниз, чтобы увидеть настройки вашей базы данных. Вы будете использовать эти настройки для настройки приложения Django.

Затем контроль доступа позволяет вам выбрать IP-адрес для доступа к вашей базе данных.
После того, как ваша база данных создана, она поставляется с предопределенным маршрутом управления доступом, который позволяет вам получить к ней доступ из любой точки мира, используя один (1) IP-адрес. Хотя вы не можете установить другой маршрут, так как вы используете бесплатный план Render.

Вы можете изменить это или оставить по умолчанию.
Теперь, когда мы создали базу данных, давайте настроим ее в проекте Django.
Как подключить вашу базу данных
После того, как база данных настроена, вам необходимо подключить ее к вашему проекту Django в файле settings.py
.
Перейдите к своей кодовой базе и подключите ее.
Сначала установите dj-database-url
pip install dj-database-url
Установка пакета подключения к базе данных для проекта Django
Существуют разные способы подключения вашей базы данных к проекту вашего приложения. В этом руководстве используется внешний URL-адрес подключения.
Перейдите к настройкам вашей базы данных на Render и скопируйте URL-адрес внешней базы данных.

Затем импортируйте dj-database-url в свой settings.py
и определите URL-адрес базы данных (из Render) в качестве вашей базы данных.
Примечание. Всегда разумно добавлять конфиденциальную информацию в файл .env из соображений безопасности.
import dj-database-url
import os
DATABASES = {
"default": dj_database_url.parse(os.environ.get("DATABASE_URL"))
}
Затем перенесите свои таблицы в новую базу данных, чтобы убедиться, что подключение прошло успешно.
Если вы не выполнили миграцию ни в один db.sqlite локально, убедитесь, что вы сначала выполнили миграцию, иначе вы не будете создавать таблицы при запуске python manage.py migrate
.
# To make migrations if this is your first time connecting to a database
python manage.py makemigrations
#To migrate tables set on your migrations folders
python manage.py migrate
Если подключение было успешным, и вы переносите все свои таблицы, вывод вашего терминала должен выглядеть следующим образом:

Теперь вы в одном шаге от развертывания вашего проекта Django! 🎉
Не забудьте отправить свою кодовую базу в репозиторий Git с значимыми коммитами.
Как создать веб-сервис
Это последний шаг к запуску вашего проекта.
Перейдите на панель инструментов Render. Нажмите «Создать +» и выберите «Веб-служба».

Подключите свой GitHub, если вы еще этого не сделали. После подключения это должно выглядеть так:

Найдите репозиторий, который вы хотите развернуть, и нажмите кнопку «Подключиться». Он должен работать безотказно.
Затем определите настройки вашего repo. Дайте вашему приложению имя и убедитесь, что вы подключаетесь к правильной ветке.

Установите gunicorn и измените файл requirements.txt в вашем проекте Django. Выполнив заморозку pip > requirements.txt, вы можете обновить установленные пакеты в файле requirements.txt. Это автоматически изменяет список необходимых файлов вашего проекта.
Gunicorn — это легкий веб-сервер Python, который действует как шлюз между веб-приложением и Интернетом. Он предназначен для развертывания, поскольку эффективно управляет входящими веб-запросами.
Затем отправьте изменения в Git. Помните, что вы подключили Git к своему веб-сервису, поэтому Render отслеживает репозиторий и автоматически развертывает его при обнаружении любых изменений.
pip install gunicorn
pip freeze > requirements.txt # To update your requirements.txt file
Убедитесь, что вы добавили веб-службу рендеринга в ALLOWED_HOSTS в файле settings.py
.
Затем убедитесь, что вы установили правильный файл requirements.txt
, как показано на изображении ниже. Кроме того, убедитесь, что вы используете правильную среду выполнения Python и задайте настройки пушки вашего проекта на платформе Render.

Вернитесь на панель Render Dashboard и щелкните развернутую веб-службу, чтобы просмотреть ссылку в реальном времени.

Вот и все! Вы развернули свое первое приложение Django на бесплатной платформе. Наслаждайтесь своим веб-сервером в течение следующих 90 дней.
Заключение
Подводя итог, можно сказать, что развертывание приложения/сервера Django или любого сервера на Render — это просто и эффективно.
Используя функции Render, такие как непрерывная интеграция и встроенный мониторинг, разработчики могут больше сосредоточиться на создании приложения и его функций, а не на инфраструктуре приложения и управлении им.