Всё то, о чём пойдет речь ниже, можно посмотреть в этом видео

ШАГ 1. Регистрация в Heroku.com

  • Переходим на официальный сайт Heroku, сразу в раздел регистрации
  • Заполняем поля в форме, проходим верификацию и нажимаем CREATE FREE ACCOUNT Регистрация аккаунта в Heroku
  • Появится окно ниже, нужно подтвердить аккаунт. Для этого идём на почту, которую указывали при регистрации, находим письмо от Heroku нажимаем на ссылку в письме. Подтверждение аккаунта heroku
  • После нажатия ссылки из письма откроется форма для создания пароля - укажите его и нажмите SET PASSWORD AND LOG IN Создание пароля heroku
  • После создания пароля, автоматически должна пройти авторизация и открыться окно ниже, если открылась страница с надписью Page Not Found то просто снова перейдите по heroku.com и должно появится окно ниже

    Переходим в самый низ и нажимаем Accept Подтверждение терминов сервиса heroku

Регистрация завершена. Перед вами стартовое окно для создания приложения Стартовое окно после регистрации heroku

ШАГ 2. Регистрация в Github.com

Регистрируемся на официальном сайте Github, там все интуитивно понятно. Но если возникнут какие-то трудности, можно воспользоваться инструкцией регистрации в Github.com

ШАГ 3. Установка Git

  • Переходим на официальный сайт и скачиваем Git для Windows
  • Запускаем скачанный файл, жмем ВЕЗДЕ Next, обязательно убедитесь, что стоит галочка напротив Windows Explorer integration
    Окно установки Git

ШАГ 4. Установка Python

Если вдруг по каким то причинам у вас еще не установлен Python, то установите согласно инструкции ниже, иначе переходите сразу к ШАГУ 5.

  • Переходим на официальный сайт и скачиваем Python последней версии Страница скачивания Python
  • Запускаем скачанный файл, обязательно убедитесь, что стоит галочка напротив Add Python 3.10 to PATH!
    И жмем Install now Окно установки Python

Готово, далее пойдет установка и считаем что этот шаг завершен, Python установлен идем далее

ШАГ 5. Написание Python кода

Теперь напишем небольшой код Python программы, которая будет обрабатывать наши запросы на сервер, чтобы проверить корректно ли мы настроили наш бесплатный вебсервер

  • Создайте папку, в которой будет храниться проект
  • Зайдите в созданную папку зажмите клавишу Shift + нажмите правой кнопкой мыши по пустой папке и нажмите на Open PowerShell window here Открытие консоли Windows
  • Чтобы не засорять свой python установленный на ПК разными ненужными пакетам, принято создавать виртуальную машину и далее всю работу и запуск кода осуществлять в ней. Создадим виртуальную машину, написав команду ниже:
    python -m venv myvenv
    Не должно быть никаких ошибок, по итогу в папке проекта должна появиться папка myvenv Создание venv
  • Запустим виртуальную машину, введя команду ниже:
    myvenv/Scripts/activate

    ВАЖНО! Может возникнуть ошибка:

    cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.

    Ошибка запуска venv cannot be loaded because running scripts is disabled on this system для её устанения введите команду ниже, нажмите Enter и после введите "Y" и нажмите Enter, затем снова попробуйте запустить виртуальную машину снова:
    Set-ExecutionPolicy Unrestricted -Scope Process

    Если в консоли появилась надпись (myvenv) в начале строки, то значит машина запустилась
    Активированный venv python

  • Теперь установим Flask для приема запросов и обработки их на Python и установим Gunicorn для работы веб сервера на Heroku на нашу машину, введя команды ниже:
    pip install flask
    pip install gunicorn
  • Все готово для написания кода, создадим python файл с названием app.py, в котором будет наша программа Создан файл app.py
  • Открываем файл любым текстовым редактором, например в блокноте, и вставьте код ниже, сохраните изменения:
    from flask import Flask, json, request
    import logging

    logging.basicConfig(level=logging.DEBUG)

    app = Flask(__name__)

    @app.route('/')
    def index():

    return "<p>Hello, World!</p>"
  • Теперь необходимо прописать список необходимых пакетов (например Flask, Gunicorn), которые Heroku нужно будет установить, чтобы наш проект работал. Для этого создадим файл requirements.txt, введя в консоли команду ниже:
    pip freeze > requirements.txt
    Результат:
    Файл requirements txt
  • Создайте файл без расширения с названием Procfile и пропишите в нем код ниже (он нужен для внутренней работы Heroku):
    web: gunicorn app:app
    Результат:
    Создание procfile
  • Создайте файл без названия, но с раширением .gitignore и пропишите в нем название папки с виртуальной машиной, чтобы она не ушла в Git (ненужный хлам)
    Создание gitignore
  • И на последок, по желанию, создайте файл Readme.md , в нем можете написать о себе или о своем проекте и другие люди, перейдя на вашу станицу в Github, смогут больше о вас узнать
    Создание readme md

Самое сложное позади, в результате должна получиться структура проекта как на скриншоте ниже:
Шаблон программы python для heroku

ШАГ 6. Перенос проекта с ПК в Github

  • Авторизовываемся в GitHub и в верху слева нажимаем Create repository Создание репозитория в GitHub
  • Заполняем Repository name, по желанию Description (описание) и нажимаем Create repository Заполнение формы создания репозитория в GitHub
  • После создания откроется страница с командами для загрузки проекта в Github ниже - не закрывайте её! Она еще пригодится! Команды для загрузки файлов в GitHub
  • Настройте доступ в Github через SSH по этой инструкции. Если не хотите, то в предыдущем пункте выберите не SSH, а HTTPS!
  • Возвращаемся в папку с проектом и запускаем Git bash Запуск Git в проекте
  • Прописываем команды ниже:
    git init
    git add .
    git commit -m "first commit"
    Теперь вернитесь на страницу Github, скопируйте выделенную строку и вставьте её в Git bash Строка подключения удаленного репозитория в git Последняя команда:
    git push -u origin master
    Пример ввода всех команд:
    Иницииация проекта в git

Если вы все сделали правильно, то обновив страницу в Github, на ней должны отобразиться файлы проекта Демонстрация файлов в Github

ШАГ 7. Настройка проекта в Heroku

  • Авторизуемся на сайте heroku, на главной странице нажимаем конпку Create new app Создание нового приложения heroku
  • Введите название вашего приложения и выберите регион (для России выбираем europe) Создание нового приложения heroku ввод названия
  • Переходим в раздел Deploy, нажимаем Connect to GitHub Выбор синхронизации через Github
  • Откроется дополнительная секция, снова нажимаем кнопку Connect to GitHub Выбор синхронизации через Github нажатие кнопки
    В полявившемя окне нажимаем Authorize heroku Heroku авторизация в Github
    Вводим пароль от Github Heroku авторизация в Github ввод пароля
  • Далее должен появится ваш репозиторий, чтобы найти наш проект нажимаем Search, после того как проект будет найдем нажимаем Connect Синхронизации проекта GitHub с Heroku
    Пример успешного подключения: Синхронизации проекта GitHub с Heroku пример успешного подключения
  • Теперь активируем автоматическую загрузку в heroku любых изменений, которые отправляются в Github, для этого опускаемся ниже и нажимаем Enable Automatic Deploys Heroku включение автоматического deploy
  • Загрузим проект из Github на heroku, нажав Deploy Branch (делается единожды, дальше загрузка будет автоматическая) Загрузка проекта из GitHub в heroku
  • Ждем пару минут, пока проект загрузится в Heroku, проверить что проект загружен можно, посмотрев логи, перейдя в More->View logs - там должна появится строчка Build succeded.
    Heroku открытие логов
    p.s. в любых ситуациях когда ваше приложение не работает открывайте логи и ищите в них ошибки.
  • Как только проект загружен, переходим в раздел Resources, заходим в изменение Free Dynos, чтобы включить его (по умолчанию выключено всегда) Heroku изменение настроек dyno
    Включаем и нажимаем Confirm Heroku включение dyno

Поздравляю! Настройка завершена, чтобы проверить что все работает нажмите Open app Heroku нажатие кнопки для открытия сайта

Должен открыться ваш новый сайт, с тектом Hellow World Heroku открытие сайта

Домашнее задание:

Поменяйте у себя на ПК в файле app.py текст c Hellow World на любой другой и через Git загрузите изменения на Github. В результате надпись на вашем сайте должна измениться!


Спасибо за внимание!