Рубрики
Без рубрики

Развертывание приложения Python Flask на Heroku

https://cdn-images-1.medium.com/max/1600/1*FMvHG0OBg1K-qlixcCI-NA.png В моем предыдущем посте…

Автор оригинала: John Kagga.

В моем предыдущем посте я на высоком уровне описал, как я разработал API с использованием Flask. Я кратко рассказал о том, как я провел его через Heroku. В этом посте я собираюсь углубиться и показать вам, как шаг за шагом развернуть API в Heroku.

Давайте начнем

После разработки приложения на вашем локальном компьютере у вас всегда есть желание поделиться им с другими далеко, но… вы не будете носить свой компьютер и идти показывать им. Таким образом, вам нужно будет разместить его в Интернете, чтобы вы предоставили им общедоступный URL-адрес, где они могут просматривать вашу работу или продукт.

Heroku-это платформа как услуга(PaaS), которая абстрагирует нас от работы с серверами, все, что нам нужно сделать, это зарегистрироваться, загрузить несколько инструментов, а затем легко загрузить наш код на платформу.

Прежде чем мы продолжим, пожалуйста, убедитесь, что у вас есть базовые знания о Git, о том, как он работает, а также о том, как использовать терминал (командная строка).

Heroku CLI

Вам необходимо загрузить CLI Heroku, который позволит нам развертывать наше приложение и управлять им.

После установки войдите в Cli Heroku, выполнив эту команду в терминале.

heroku login

Вам будет предложено ввести свой адрес электронной почты и пароль. Вы войдете в систему только в том случае, если эти данные соответствуют учетным данным, с которыми вы зарегистрировались на платформе Heroku.

Приложение

Мы собираемся развернуть приложение API , которое я разработал и о котором писал в этом посте , хотя вы можете следить за своим собственным приложением.

У меня есть код приложения, размещенный здесь в моей учетной записи Github. Следуйте за мной, если у вас нет приложения для использования.

Давайте начнем с клонирования приложения. Откройте терминал и вставьте эту команду, чтобы клонировать приложение. Мягкое напоминание о том, что этот шаг будет работать только в том случае, если на вашем компьютере установлен Git.

git clone https://github.com/jokamjohn/bucket_api_heroku.git

Откройте папку bucket_api_heroku с помощью вашего любимого текстового редактора или IDE. Создайте виртуальную среду и установите зависимости, запустив.

pip install -r requirements.txt

Примечание: если вы используете свое собственное приложение, убедитесь, что вы добавили requirements.txt файл при запуске |/pip freeze > requirements.txt так, чтобы были добавлены все зависимости приложений.

Добавление файла Procfile

Для того, чтобы мы могли успешно развернуть любое приложение в Heroku, мы должны добавить Профиль в это приложение.

Прежде чем мы сможем добавить профиль, нам нужно сначала установить веб-сервер под названием Gunicorn . Выполните следующую команду в папке приложения.

pip install gunicorn

Обновите файл требований, выполнив

pip freeze > requirements.txt

Создайте новый файл с именем Proc file и не добавляйте никаких расширений. Добавьте эту строку ниже

web: gunicorn app:app

web используется Heroku для запуска веб-сервера для приложения. app:app указывает имя модуля и приложения. В нашем приложении у нас есть модуль приложения, и наше приложение для колбы также называется приложением. Если ваши другие, вы можете их изменить.

Развертывание

Теперь мы готовы к развертыванию нашего приложения. В папке приложения выполните

heroku create kbucket-api-heroku

k-bucket – это имя приложения, оно должно быть уникальным для всех Heroku. Поэтому измените его на свой, иначе вы не сможете развернуть. Вы можете полностью отказаться от имени приложения для Heroku, чтобы назначить вам уникальное имя.

Выходные данные этой команды будут аналогичны приведенным ниже. Обратите внимание на URL-адрес приложения, потому что именно там находится ваше приложение.

(venv) G:\PyProjects\bucket_api_heroku>heroku create kbucket-api-herokuCreating kbucket-api-heroku... donehttps://kbucket-api-heroku.herokuapp.com/ | https://git.heroku.com/kbucket-api-heroku.git

Это https://git.heroku.com/kbucket-api-heroku.git – это удаленный репозиторий Heroku git, в котором наше приложение живет на Heroku. Теперь нам нужно отправить наше приложение в главную ветвь приведенного выше URL-адреса git. Вот состояние нашего приложения на данном этапе. Клонируйте репозиторий, если вы не следили за ним, и нажмите на Heroku master .

Теперь перейдите по URL-адресу приложения, чтобы просмотреть документацию API приложения в качестве домашней страницы.

Домашняя страница

База данных

Как вы, возможно, уже знаете, нашему приложению нужна база данных для сохранения данных. Он использует базу данных Postgresql для сохранения этих данных.

Heroku достаточно умен, чтобы сканировать код нашего приложения и назначить ему базу данных Postgres. Если вы посмотрите на панель мониторинга приложения Heroku в разделе обзор , вы увидите настроенное дополнение под названием Heroku Postgres, как показано ниже.

Обзор панели мониторинга

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

release: python manage.py db upgrade

Команда обновление бд из manage.py файл заполняет схему таблицы из базы данных миграция файла в базу данных.

Зафиксируйте изменения и переместите их в репозиторий Heroku master git или клонируйте и используйте этот репозиторий .

Тестирование приложения

Теперь мы можем, наконец, протестировать наше приложение live API. Перейдите на домашнюю страницу приложения и нажмите на Зарегистрировать пользователя в разделе ссылки. Затем нажмите кнопку переключиться на консоль выбрать производство , чтобы данные, которые мы отправляем, могли сохраняться в базе данных. Нажмите на body , чтобы отобразить пример данных электронной почты и пароля.

Документация по API и консоль

А 201 код возвращается при успешном создании пользователя, как показано ниже.

Успешное создание пользователя

Поздравляю, вы развернули свое первое приложение в Heroku.