Этот урок описывает публикацию сайта на удалённый сервер с использованием Heroku. Heroku предоставляет бесплатный доступ для сайтов на Python, Ruby, Java и других языках. Платные тарифы позволяют расширить функциональность (собственный домен, дополнительные базы данных), но для этого урока достаточно бесплатного варианта.
Подготовка к публикации
- Регистрация/Авторизация на Heroku: Зарегистрируйтесь или авторизуйтесь на сайте Heroku (ссылка в описании). При проблемах с регистрацией, используйте электронную почту Gmail.
- Установка Heroku CLI: Скачайте и установите Heroku CLI (командная строка). Инструкции по установке для Windows, macOS и Linux доступны на сайте Heroku. Для macOS используйте команду heroku install в терминале; для Linux — аналогичную команду.
Развертывание проекта
- Авторизация: В терминале проекта выполните команду heroku login. Авторизуйтесь через браузер.
- Создание приложения: На сайте Heroku создайте новое приложение. Выберите имя (например, «flask-itprager-john»), регион (влияет на местоположение сервера) и нажмите «Create».
- Подключение Git: Для загрузки проекта на Heroku используется Git. Установите Git, если он ещё не установлен (ссылка на скачивание в описании).
- Инициализация репозитория: В терминале проекта выполните команду git init. Файлы проекта будут помечены как неотслеживаемые (обычно отображаются красным цветом).
- Подключение к удалённому репозиторию: Скопируйте строку из инструкции Heroku и вставьте её в терминал. Это свяжет ваш локальный репозиторий с удалённым репозиторием на Heroku.
Настройка проекта
Для корректной работы проекта на Heroku:
- Установка gunicorn: Установите библиотеку gunicorn командой pip install gunicorn. Она отвечает за запуск приложения на сервере.
- Создание requirements.txt: Создайте файл requirements.txt командой pip freeze > requirements.txt. Этот файл содержит список зависимостей проекта.
- Создание Procfile: Создайте файл Procfile (без расширения) и добавьте строку: web: gunicorn your_app:app. Замените your_app:app на имя вашего основного приложения (например, app:app).
Загрузка проекта
- Добавление файлов в Git: git add .
- Создание коммита: git commit -m "all files"
- Загрузка на Heroku: git push heroku master
После успешной загрузки Heroku предоставит ссылку на ваш опубликованный сайт. База данных (если использовалась SQLite) также будет развернута. Изменения, внесенные на сайте, будут корректно отображаться.
В этом уроке описан процесс публикации проекта Flask на сервере Heroku с использованием Git для управления версиями и развертывания приложения. Теперь ваш проект доступен в интернете!