[PYTHON] Premiers pas avec Heroku, déploiement de l'application Flask

introduction

Qu'est-ce que heroku?

PaaS (Platform as a Service) fourni par heroku, qui a été fondée aux États-Unis en 2007.

PaaS est un service qui vous permet de publier une application sans initialiser le serveur. Cela permet aux développeurs de se concentrer sur le développement d'applications.

image.png

Quels sont les avantages de l'utilisation d'heroku?

Riche en extensions

Le scale-out est l'une des méthodes permettant d'augmenter la puissance de traitement du système et d'améliorer l'environnement de l'ordinateur en augmentant le nombre de serveurs qui composent le système. «Maintenir un environnement optimal» est indispensable pour cela. À mesure que le nombre d'utilisateurs de l'application augmente, il sera nécessaire d'améliorer l'environnement pour que l'application puisse fonctionner correctement. Afin de fournir un service stable à de nombreux utilisateurs, il est important de passer à l'échelle pour améliorer les performances du matériel. ** De plus, avec heroku, vous pouvez modifier la mise à l'échelle immédiatement en opérant sur l'écran du tableau de bord ou en exécutant une simple commande. ** **

Facile à évoluer

Le scale-out est l'une des méthodes permettant d'augmenter la puissance de traitement du système et d'améliorer l'environnement de l'ordinateur en augmentant le nombre de serveurs qui composent le système. «Maintenir un environnement optimal» est indispensable pour cela. À mesure que le nombre d'utilisateurs de l'application augmente, il sera nécessaire d'améliorer l'environnement pour que l'application puisse fonctionner correctement. Afin de fournir un service stable à de nombreux utilisateurs, il est important de passer à l'échelle pour améliorer les performances du matériel. ** De plus, avec heroku, vous pouvez modifier la mise à l'échelle immédiatement en opérant sur l'écran du tableau de bord ou en exécutant une simple commande. ** **

Heroku

Installation de l'environnement de commande Heroku

brew tap heroku/brew && brew install heroku

Créez un compte Heroku et notez votre adresse e-mail de connexion et votre mot de passe. Tapez la commande de connexion dans Terminal.

heroku login

L'état d'exécution de la commande ci-dessus est le suivant. ezgif-4-139b33230118.gif

Déployer l'application Flask sur Heroku

Créez les ressources requises

Créez un répertoire pour placer les fichiers du projet et accédez au répertoire. Exécutez la commande suivante dans le terminal.

mkdir flaskonheroku
cd flaskonheroku

Créez les fichiers requis.

touch app.py Procfile

Modifiez app.py comme suit.

app.py


# -*- coding: utf-8 -*-
from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'hello, world'

if __name__ == '__main__':
    app.run()

Modifiez le fichier Procfile comme suit.

web: gunicorn app:app --log-file=-

Installez les bibliothèques requises cette fois avec pip install. Procédez comme suit dans votre terminal:

pip3 install Flask
pip3 install gunicorn

Créez les fichiers nécessaires au déploiement

Créez requirements.txt.

pip freeze > requirements.txt

Modifiez requirements.txt comme suit.

Flask==1.1.2
click==7.1.2
gunicorn==20.0.4
Jinja2==2.11.2

Vérifiez si cela fonctionne dans l'environnement local

$ python app.py
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

C'est OK si vous accédez à l'adresse et que l'écran suivant apparaît. スクリーンショット 2020-10-25 17.30.19.png

Préparer le dépôt git

Exécutez la commande suivante dans le terminal pour l'initialiser en tant que référentiel git

git init
git add .
git commit -m "first commit"

Créer une application Heroku

Créez une application sur Heroku avec la commande heroku create.

$ heroku create
Creating app... done, ⬢ secret-refuge-44790
https://secret-refuge-●●●●●●●●.herokuapp.com/ | https://git.heroku.com/secret-refuge-●●●●●●●●.git

Vous pouvez également spécifier le nom de l'application avec heroku create app name. Si vous ne spécifiez pas de nom d'application, le nom de l'application sera attribué automatiquement. (Peut être changé plus tard)

Déployez l'application sur Heroku

Un référentiel distant a été créé, alors poussez-le.

$ git remote
heroku
git push heroku master

L'état d'exécution de la commande et de déploiement est le suivant. ezgif-4-9c7ffb1c8e6f.gif

Vérifiez l'appli

Lorsque vous exécutez la commande suivante, le navigateur démarre automatiquement et l'application Flask déployée démarre.

heroku open

L'état de l'écran du navigateur où l'écran suivant a réellement démarré. スクリーンショット 2020-10-25 18.00.04.png

Articles que j'ai utilisés comme référence

Qu'est-ce que heroku? Présentation des bases et des fonctionnalités que même les débutants peuvent comprendre en 5 minutes | Blog Samurai - Site pour les débutants en programmationDéploiement d'Heroku sur mac --QiitaLes ingénieurs actifs expliquent comment déployer des applications Python en utilisant heroku [pour les débutants] | TechAcademy Magazine

Recommended Posts

Premiers pas avec Heroku, déploiement de l'application Flask
Exécutez l'application avec Flask + Heroku
Application Web facile avec Python + Flask + Heroku
Premiers pas avec Android!
1.1 Premiers pas avec Python
Premiers pas avec Python
Premiers pas avec Django 1
Introduction à l'optimisation
Premiers pas avec Numpy
Premiers pas avec Python
Premiers pas avec Pydantic
Premiers pas avec Jython
Premiers pas avec Django 2
Traduire Premiers pas avec TensorFlow
Introduction aux fonctions Python
Introduction à Tkinter 2: Button
Premiers pas avec Go Assembly
Touch Flask + courir avec Heroku
Premiers pas avec PKI avec Golang ―― 4
Premiers pas avec Python Django (1)
Premiers pas avec Python Django (4)
Premiers pas avec Python Django (3)
Introduction à Python Django (6)
Premiers pas avec Django avec PyCharm
Premiers pas avec Python Django (5)
Comment déployer une application Web créée avec Flask sur Heroku
Introduction à Flask Partie 2: Affichage des blocs de données dans les feuilles de style
Premiers pas avec Python responder v2
Introduction à Git (1) Stockage d'historique
Premiers pas avec Sphinx. Générer docstring avec Sphinx
Premiers pas avec les applications Web Python
Premiers pas avec Sparse Matrix avec scipy.sparse
Premiers pas avec Julia pour Pythonista
Premiers pas avec Python Bases de Python
Déployer l'application Flask sur heroku (amer)
Déployez l'application Flask sur Heroku
Premiers pas avec Cisco Spark REST-API
Commençant par USD sur Windows
Déployez l'application Flask sur heroku
Premiers pas avec les algorithmes génétiques Python
Premiers pas avec Python 3.8 sous Windows
Premiers pas avec Python pour les fonctions PHPer
Premiers pas avec CPU Steal Time
Stockage de table Azure avec l'application PTVS Flask
Premiers pas avec python3 # 1 Apprenez les connaissances de base
Déployer l'application flask avec mod_wsgi (à l'aide de pipenv)
J'ai essayé linebot avec flacon (anaconda) + heroku
Premiers pas avec Python Web Scraping Practice
Premiers pas avec Python pour PHPer-Super Basics
Premiers pas avec Python Web Scraping Practice
Premiers pas avec Dynamo de Python boto
Lancez l'application Flask avec Docker sur Heroku
Premiers pas avec TDD avec Cyber-dojo chez MobPro
Démarrer avec Python avec 100 coups sur le traitement du langage
Comment télécharger avec Heroku, Flask, Python, Git (4)