Premiers pas avec Heroku-Viewing Hello World en Python Django avec Raspberry PI 3

: rocket: But de cet article

Sortie de l'application la plus simple créée par Django, un serveur WEB Python, sur ** Heroku **, qui est l'un des ** PaaS ** (Platform as a Service), et affiche "Hello" à l'écran. Vérifiez la procédure pour afficher "World ...".

: rocket: Qu'est-ce que Heroku?

Heroku est l'un des PaaS les plus connus, avec Force.com de Salesforce.com et Google AppEngine de Google.

: lien: site principal de Heorku https://jp.heroku.com/ image.png

Avec Heroku, vous pouvez lancer et exploiter des applications personnalisées sans avoir à vous soucier des problèmes d'environnement d'infrastructure tels que l'achat de serveurs, la configuration, la construction du réseau et la maintenance des serveurs.

Les applications déployées sur Heroku s'exécutent dans des unités de module complètement indépendantes appelées ** Dyno ** et s'adaptent automatiquement (diminuez le nombre de Dyno) et évoluent (augmentez le nombre de Dyno). Il est possible de.

De plus, la répartition de la charge et le traitement du routage sont automatiquement effectués en fonction de l'augmentation ou de la diminution du nombre de Dyno, et l'utilisateur n'a pas besoin de connaître les paramètres et les opérations.

Heroku a également de nombreuses autres fonctionnalités. Veuillez consulter ce site Heroku pour plus de détails.

: moneybag: ** Plage d'utilisation gratuite ** Heroku a un plan d'essai gratuit. ・ Limite de capacité de la RAM: jusqu'à 512 Mo ・ Nombre de Dynas simultanés: jusqu'à 2 ・ Endormez-vous après 30 minutes de marche au ralenti ・ Temps d'utilisation de Dyno par mois: jusqu'à 1000 heures

: rocket: environnement d'exécution

Cette fois, nous allons créer une application Django avec Raspberry PI 3 et la publier sur Heroku. Les détails de l'environnement d'exécution (environnement de construction d'application WEB) sont les suivants.

: faux: ** Détails de l'environnement de construction de l'application WEB ** ・ Raspberry PI 3 modèle B (mémoire 1 Go) -Version OS: Raspbian GNU / Linux 10 (buster) -Version du noyau: Linux raspberrypi 4.19.97-v7 + ・ Python 3.7.3 ・ Version 2.20.1 de Git

: rocket: Création d'un environnement d'application WEB

Créez une application WEB qui affiche "Hello World ..." dans Django. Lorsque l'application WEB sera terminée, nous la publierons sur Heroku.

1. Installez django-toolbelt

Installez ** django-toolbelt **. django-toolbelt est une bibliothèque fournie par PyPI, qui est un package contenant un ensemble de fonctions nécessaires à l'exécution dans Heroku. Installez avec pip install.

: lien: détails de django-toolbelt https://pypi.org/project/django-toolbelt/

Exécutez la commande suivante.

pip install django-toolbelt

C'est OK lorsque ce qui suit est affiché. Le nom du logiciel installé s'affiche. image.png

2. Créez un projet Django

Créez un projet Django. La procédure de création est la même que la procédure générale Django. Cette fois, j'ai procédé avec la procédure suivante.

(1) Définissez le chemin de la commande django-admin  export PATH=~/.local/bin:$PATH (2) Exécutez la commande django-admin  django-admin startproject herokutest Le dossier de projet "herokutest" est créé. (3) Modifier les paramètres.py Modifiez la partie suivante de settinigs.py. (Emplacement du fichier: [dossier du projet] /herokutest/settings.py)

settings.py


ALLOWED_HOSTS = ['*']
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'

(4) Créer une application Hello (Exécuter dans le dossier de projet créé heroku)  python manage.py startapp hello (5) Modification de views.py Définissez views.py comme suit. (Emplacement du fichier: dans le dossier Hello créé)

views.py


from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return HttpResponse('Hello World Heroku Test!')

(6) Modification de urls.py Définissez urls.py comme suit. (Emplacement du fichier: [dossier du projet] /herokutest/urls.py)

urls.py


from django.contrib import admin
from django.urls import path
import hello.views as hello

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/', hello.index),
]

(7) Vérifiez l'affichage de l'écran Exécutez la commande suivante pour accéder à l'environnement local avec un navigateur et vérifier l'affichage de l'écran. (La commande est exécutée directement sous [Dossier de projet])  python manage.py runserver Environnement local: localhost: 8000 / bonjour /

Résultat de l'affichage à l'écran ↓ image.png C'est tout pour créer l'environnement d'application WEB.

: rocket: enregistrement du compte Heroku

Enregistrez un nouveau compte sur le site Heroku. Veuillez saisir votre adresse e-mail et votre mot de passe pour enregistrer votre compte. La procédure est omise ici.

: rocket: installez la CLI Heroku

Pour utiliser la commande Heroku, installez la CLI Heroku. Téléchargez à partir du site suivant.

:link: https://devcenter.heroku.com/articles/heroku-cli

Pour Raspberry PI, téléchargez depuis Linux (arm) dans la ligne rouge de la figure ci-dessous.

image.pngimage.png Après le téléchargement, décompressez et placez le chemin dans le dossier bin.

: fusée: connexion Heroku

Connectez-vous à Heroku avec la commande suivante. heroku login Le navigateur s'ouvre et le bouton de connexion s'affiche. Veuillez vous connecter. Si l'écran ci-dessous s'affiche, la connexion est réussie. image.png

: rocket: créer une clé SSH

Ici, nous allons passer en revue les étapes pour créer une nouvelle clé SSH qui la distingue des autres clés à usage individuel pour Heroku. L'emplacement de la clé SSH à créer est ~ / herokukeys /.

Suivez les étapes ci-dessous pour créer une clé SSH.

(1) Créez un dossier pour stocker la clé SSH.  mkdir ~/herokukeys (2) Créez une paire de clés SSH.  ssh-keygen -f ~/herokukeys/id_rsa Une clé privée (id_rsa) et une clé publique (id_rsa.pub) sont créées dans le dossier herokukeys. (3) Si vous définissez une phrase de passe lors de la création de la clé SSH, vous serez invité à la saisir lors de la connexion. Pour l'omettre, exécutez la commande suivante.  ssh-add ~/herokukeys/id_rsa (4) Enregistrez la clé publique SSH créée.  heroku keys:add ~/herokukeys/id_rsa.pub (5) Effectuez les réglages suivants pour que la clé SSH créée individuellement sur le site Heroku soit utilisée. Définition du fichier cible: ~ / .ssh / config

~/.ssh/config


Host heroku
  HostName heroku.com
  User git
  IdentityFile /home/pi/herokukeys/id_rsa

: rocket: paramètres requis lors du déploiement sur Heroku

Certains paramètres sont nécessaires pour déployer (libérer) l'application WEB sur Heroku.

1. Créez un fichier Procfile

Créez un fichier Procfile avec la commande suivante pour qu'Heroku exécute Web Dyno, qui est un Dyno pour le Web. L'emplacement à créer est directement sous [Dossier du projet].

echo "web: gunicorn herokutest.wsgi --log-file -" > Procfile

2. Créez un fichier runtime.txt

Décrit la version de Python à exécuter. Comme indiqué ci-dessous, les caractères de python sont écrits en lettres minuscules avec des tirets ajoutés. L'emplacement à créer est directement sous [Dossier du projet].

echo "python-3.7.3" > runtime.txt

3. Créez un fichier requirements.txt

Un fichier qui définit les bibliothèques nécessaires pour exécuter Python. Heroku examinera cela et installera les bibliothèques nécessaires. L'emplacement à créer est directement sous [Dossier du projet].

Cette fois, le contenu est le suivant.

requirements.txt


asgiref==3.2.10
dj-database-url==0.5.0
dj-static==0.0.6
Django==3.1.2
django-toolbelt==0.0.1
gunicorn==20.0.4
psycopg2==2.8.6
pytz==2020.1
sqlparse==0.4.1
static3==0.7.0

: bulb: ** Conseils sur la création d'exigences.txt ** Le fichier requirements.txt peut être créé avec la commande suivante. pip freeze > requirements.txt Le fichier ci-dessus n'a extrait que ce qui était nécessaire après l'exécution de cette commande.

: fusée: application WEB Git

1. Initialisation Git

Effectuez les réglages initiaux de Git. user.email doit être l'adresse e-mail enregistrée dans Heroku.

python


git config --global user.email "adresse mail"
git config --global user.name "Nom d'utilisateur"

2. Validation de la source

(1) Initialisez le référentiel Git. Exécutez-le directement sous [Dossier de projet].  git init (2) Validez la source.  git add . git commit -m" (définir le commentaire de validation) " C'est OK si la liste des sources validées est affichée à l'écran.

: fusée: Déployer sur Heroku (Release)

1. Créer une application

Créez une application sur Heroku avec la commande suivante. Exécutez-le directement sous [Dossier de projet]. heroku create image.png Heroku attribue automatiquement le nom de l'application. Une fois la publication réussie, pour accéder à l'application WEB, accédez à l'URL donnée (dans la version payante, vous pouvez acquérir votre propre domaine et le remplacer).

Dans ce qui précède, mysterious-citadel-41347 a été donné comme nom de l'application.

2. Effectuez le déploiement (version)

Avant de déployer, nous ajusterons la source Django. Cette fois, vous devez définir que vous n'utilisez pas d'actifs statiques. Exécutez la commande suivante. heroku config:set DISABLE_COLLECTSTATIC=1 image.png

Exécutez le déploiement (release) avec la commande suivante. git push heroku master image.png

3. Vérifiez l'affichage de l'écran

Si le déploiement réussit sans aucune erreur, vérifiez l'écran.

Vous pouvez démarrer l'application WEB avec la commande "heroku open", mais cette fois il est nécessaire d'ajouter hello / à la fin de l'URL, alors entrez l'URL directement dans le navigateur pour confirmer.

URL: ** https: // (nom de l'application) .herokuapp.com / hello / **

Résultat de l'affichage à l'écran image.png

Il a été affiché comme ci-dessus sur le navigateur, et l'affichage de "Hello World Heroku Test!" A été confirmé avec succès.

: rocket: Informations connexes

: lien: détails de django-toolbelt https://pypi.org/project/django-toolbelt/

: lien: site principal de Heorku https://jp.heroku.com/

: fusée: Opinions etc.

Si vous avez des opinions ou des corrections, veuillez nous en informer.

Recommended Posts

Premiers pas avec Heroku-Viewing Hello World en Python Django avec Raspberry PI 3
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 Python Django (5)
Bonjour le monde avec Raspberry Pi + Minecraft Pi Edition
Django 1.11 a démarré avec Python3.6
1.1 Premiers pas avec Python
Premiers pas avec Python
Premiers pas avec Django 1
Premiers pas avec Python
Premiers pas avec Django 2
Premiers pas avec AWS IoT facilement en Python
Paramètres pour démarrer avec MongoDB avec python
Introduction aux fonctions Python
Premiers pas avec Django avec PyCharm
Python commençant par Hello world!
Premiers pas avec Python responder v2
Utilisez vl53l0x avec RaspberryPi (python)
Premiers pas avec les applications Web Python
Premiers pas avec Python pour les classes PHPer
Premiers pas avec Python Bases de Python
[Note] Sortie Hello world avec python
cout << "Hello, World! \ N" en python
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
Démarrez avec Python avec Blender
Utilisez python sur Raspberry Pi 3 pour éclairer la LED (Hello World)
Premiers pas avec python3 # 1 Apprenez les connaissances de base
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
Commençons avec TopCoder en Python (version 2020)
Bonjour tout le monde pas localhost à Django
Comment afficher Hello World en python
Travailler avec le GPS en Python pour Raspberry Pi 3
Application de notification de message Rabbit MQ avec Growl en Python ~ avec Raspeye et Julius ~
Hello World et détection de visage avec OpenCV 4.3 + Python
Hello World avec gRPC / go dans l'environnement Docker
Discord bot raspberry pi zéro avec python [Note]
[Remarques d'amateur] Raspberry Pi 3, Wordpress vs Raspberry Pi 3, python, Django
Principes de base de MongoDB: Premiers pas avec CRUD avec JAVA
[Français] Premiers pas avec Rust pour les programmeurs Python
J'ai essayé L-Chika avec Razpai 4 (édition Python)
Dites bonjour au monde avec Python avec IntelliJ
Hello World avec nginx + uwsgi + python sur EC2
Django Getting Started Part 2 avec eclipse Plugin (PyDev)
Obtenez des informations sur le processeur de Raspberry Pi avec Python
Créez une application Hello World avec un seul fichier avec django
Premier python ① Construction de l'environnement avec pythonbrew & Hello World !!
Django Getting Started Partie 3 sur Python3 & MySQL Connector
Matériel à lire lors de la mise en route de Python
Connectez-vous à MySQL avec Python sur Raspberry Pi
Suivi GPS avec Raspeye 4B + BU-353S4 (Python)
Mesurer la température du processeur de Raspeye avec Python
J'ai eu une erreur lorsque j'ai mis opencv dans python3 avec Raspeye [Remedy]