Erste Schritte mit Heroku-Viewing Hello World in Python Django mit Raspberry PI 3

: Rakete: Zweck dieses Artikels

Veröffentlichte die einfachste Anwendung, die von Django, einem Python-WEB-Server, auf ** Heroku **, einem von ** PaaS ** (Platform as a Service), erstellt wurde, und zeigte "Hallo" auf dem Bildschirm an. Überprüfen Sie das Verfahren, um "Welt ..." anzuzeigen.

: Rakete: Was ist Heroku?

Heroku ist neben Force.com von Salesforce.com und Google AppEngine von Google eines der bekanntesten PaaS.

: link: Heorkus Hauptseite https://jp.heroku.com/ image.png

Mit Heroku können Sie angepasste Anwendungen freigeben und betreiben, ohne sich um die Probleme der Infrastrukturumgebung wie Serverbeschaffung, Einrichtung, Netzwerkaufbau und Serverwartung kümmern zu müssen.

Auf Heroku bereitgestellte Anwendungen werden in völlig unabhängigen Moduleinheiten namens ** Dyno ** ausgeführt und automatisch skaliert (Dyno-Anzahl verringern) und verkleinern (Dyno-Anzahl erhöhen). Es ist möglich zu.

Darüber hinaus werden die Lastverteilung und die Routing-Verarbeitung automatisch entsprechend der Zunahme oder Abnahme der Anzahl von Dyno ausgeführt, und der Benutzer muss die Einstellungen und Vorgänge nicht kennen.

Heroku hat noch viele andere Funktionen. Weitere Informationen finden Sie auf dieser Heroku-Website.

: moneybag: ** Freie Nutzungsreichweite ** Heroku hat einen kostenlosen Testplan. ・ RAM-Kapazitätsgrenze: bis zu 512 MB ・ Anzahl gleichzeitiger Dynas: Bis zu 2 ・ Nach 30 Minuten Leerlauf schlafen gehen ・ Dyno-Nutzungsdauer pro Monat: bis zu 1.000 Stunden

: Rakete: Ausführungsumgebung

Dieses Mal werden wir eine Django-App mit Raspberry PI 3 erstellen und für Heroku veröffentlichen. Die Details der Ausführungsumgebung (WEB-Anwendungskonstruktionsumgebung) sind wie folgt.

: falsch: ** Details der WEB-Anwendungskonstruktionsumgebung ** ・ Himbeer PI 3 Modell B (Speicher 1 GB) -OS Version: Raspbian GNU / Linux 10 (Buster) -Kernel-Version: Linux raspberrypi 4.19.97-v7 + ・ Python 3.7.3 ・ Git Version 2.20.1

: rocket: Erstellen einer WEB-Anwendungsumgebung

Erstellen Sie eine WEB-Anwendung, die in Django "Hello World ..." anzeigt. Wenn die WEB-Anwendung abgeschlossen ist, werden wir sie für Heroku freigeben.

1. Installieren Sie den Django-Werkzeuggürtel

Installiere ** django-toolbelt **. django-toolbelt ist eine von PyPI bereitgestellte Bibliothek, ein Paket, das eine Reihe von Funktionen enthält, die für die Ausführung in Heroku erforderlich sind. Installieren Sie mit pip install.

: link: django-toolbelt details https://pypi.org/project/django-toolbelt/

Führen Sie den folgenden Befehl aus.

pip install django-toolbelt

Es ist in Ordnung, wenn Folgendes angezeigt wird. Der Name der installierten Software wird angezeigt. image.png

2. Erstellen Sie ein Django-Projekt

Erstellen Sie ein Django-Projekt. Das Erstellungsverfahren ist das gleiche wie das allgemeine Django-Verfahren. Dieses Mal fuhr ich mit dem folgenden Verfahren fort.

(1) Legen Sie den Pfad des Befehls django-admin fest  export PATH=~/.local/bin:$PATH (2) Führen Sie den Befehl django-admin aus  django-admin startproject herokutest Der Projektordner "herokutest" wird erstellt. (3) Bearbeiten Sie settings.py Ändern Sie den folgenden Teil von settinigs.py. (Speicherort der Datei: [Projektordner] /herokutest/settings.py)

settings.py


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

(4) Erstellen einer Hallo-Anwendung (Im erstellten Projektordner heroku ausführen)  python manage.py startapp hello (5) Bearbeiten von views.py Stellen Sie views.py wie folgt ein. (Speicherort der Datei: im erstellten Hallo-Ordner)

views.py


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

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

(6) Bearbeiten von urls.py Stellen Sie urls.py wie folgt ein. (Speicherort der Datei: [Projektordner] /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) Überprüfen Sie die Bildschirmanzeige Führen Sie den folgenden Befehl aus, um mit einem Browser auf die lokale Umgebung zuzugreifen und die Bildschirmanzeige zu überprüfen. (Der Befehl wird direkt unter [Projektordner] ausgeführt.)  python manage.py runserver Lokale Umgebung: localhost: 8000 / hallo /

Ergebnis der Bildschirmanzeige ↓ image.png Das ist alles für den Aufbau der WEB-Anwendungsumgebung.

: Rakete: Heroku Konto Registrierung

Registrieren Sie ein neues Konto auf der Heroku-Website. Bitte geben Sie Ihre E-Mail-Adresse und Ihr Passwort ein, um Ihr Konto zu registrieren. Das Verfahren wird hier weggelassen.

: rocket: Installiere Heroku CLI

Installieren Sie die Heroku-CLI, um den Heroku-Befehl zu verwenden. Download von der folgenden Seite.

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

Laden Sie für Raspberry PI von Linux (Arm) in der roten Linie in der folgenden Abbildung herunter.

image.pngimage.png Entpacken Sie den Pfad nach dem Herunterladen und legen Sie ihn im Ordner bin ab.

: Rakete: Heroku Login

Melden Sie sich mit dem folgenden Befehl bei Heroku an. heroku login Der Browser wird geöffnet und die Anmeldeschaltfläche wird angezeigt. Bitte melden Sie sich an. Wenn der folgende Bildschirm angezeigt wird, ist die Anmeldung erfolgreich. image.png

: rocket: SSH-Schlüssel erstellen

Hier werden wir das Verfahren zum Erstellen eines neuen SSH-Schlüssels überprüfen, der ihn von anderen Schlüsseln für die individuelle Verwendung für Heroku unterscheidet. Der Speicherort des zu erstellenden SSH-Schlüssels ist ~ / herokukeys /.

Führen Sie die folgenden Schritte aus, um einen SSH-Schlüssel zu erstellen.

(1) Erstellen Sie einen Ordner zum Speichern des SSH-Schlüssels.  mkdir ~/herokukeys (2) Erstellen Sie ein SSH-Schlüsselpaar.  ssh-keygen -f ~/herokukeys/id_rsa Ein privater Schlüssel (id_rsa) und ein öffentlicher Schlüssel (id_rsa.pub) werden im Ordner herokukeys erstellt. (3) Wenn Sie beim Erstellen des SSH-Schlüssels eine Passphrase festlegen, werden Sie beim Herstellen der Verbindung aufgefordert, diese einzugeben. Führen Sie den folgenden Befehl aus, um dies zu unterlassen.  ssh-add ~/herokukeys/id_rsa (4) Registrieren Sie den erstellten öffentlichen SSH-Schlüssel.  heroku keys:add ~/herokukeys/id_rsa.pub (5) Nehmen Sie die folgenden Einstellungen vor, damit der auf der Heroku-Site individuell erstellte SSH-Schlüssel verwendet wird. Festlegen der Zieldatei: ~ / .ssh / config

~/.ssh/config


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

: rocket: Erforderliche Einstellungen bei der Bereitstellung in Heroku

Einige Einstellungen sind erforderlich, um die WEB-Anwendung auf Heroku bereitzustellen (freizugeben).

1. Erstellen Sie eine Procfile-Datei

Erstellen Sie eine Procfile mit dem folgenden Befehl, damit Heroku Web Dyno ausführt, ein Dyno für das Web. Der zu erstellende Speicherort befindet sich direkt unter [Projektordner].

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

2. Erstellen Sie eine runtime.txt-Datei

Beschreibt die auszuführende Python-Version. Wie unten gezeigt, werden die Zeichen von Python in Kleinbuchstaben mit Bindestrichen geschrieben. Der zu erstellende Speicherort befindet sich direkt unter [Projektordner].

echo "python-3.7.3" > runtime.txt

3. Erstellen Sie eine Datei require.txt

Eine Datei, die die Bibliotheken definiert, die zum Ausführen von Python benötigt werden. Heroku wird sich das ansehen und die notwendigen Bibliotheken installieren. Der zu erstellende Speicherort befindet sich direkt unter [Projektordner].

Diesmal sind die Inhalte wie folgt.

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: ** Tipps zum Erstellen der Anforderung.txt ** Die Datei require.txt kann mit dem folgenden Befehl erstellt werden. pip freeze > requirements.txt Die obige Datei extrahierte nur das, was nach Ausführung dieses Befehls benötigt wurde.

: rocket: WEB-Anwendung Git

1. Git-Initialisierung

Nehmen Sie die Grundeinstellungen von Git vor. user.email sollte die in Heroku registrierte E-Mail-Adresse sein.

python


git config --global user.email "Mail Adresse"
git config --global user.name "Nutzername"

2. Source Commit

(1) Initialisieren Sie das Git-Repository. Führen Sie es direkt unter [Projektordner] aus.  git init (2) Übernehmen Sie die Quelle.  git add . git commit -m" (Commit-Kommentar setzen) " Es ist in Ordnung, wenn die Liste der festgeschriebenen Quellen auf dem Bildschirm angezeigt wird.

: Rakete: Bereitstellen auf Heroku (Release)

1. Erstellen einer Anwendung

Erstellen Sie eine Anwendung auf Heroku mit dem folgenden Befehl. Führen Sie es direkt unter [Projektordner] aus. heroku create image.png Heroku weist den Anwendungsnamen automatisch zu. Um nach erfolgreicher Veröffentlichung auf die WEB-Anwendung zuzugreifen, greifen Sie auf die angegebene URL zu (in der kostenpflichtigen Version können Sie Ihre eigene Domain erwerben und diese ersetzen).

Oben wurde Mystery-Citadel-41347 als Anwendungsname angegeben.

2. Führen Sie die Bereitstellung durch (Release)

Vor der Bereitstellung werden wir die Django-Quelle anpassen. Dieses Mal müssen Sie festlegen, dass Sie keine statischen Assets verwenden. Führen Sie den folgenden Befehl aus. heroku config:set DISABLE_COLLECTSTATIC=1 image.png

Führen Sie die Bereitstellung (Release) mit dem folgenden Befehl aus. git push heroku master image.png

3. Überprüfen Sie die Bildschirmanzeige

Wenn die Bereitstellung ohne Fehler erfolgreich ist, überprüfen Sie den Bildschirm.

Sie können die WEB-Anwendung mit dem Befehl "heroku open" starten. Diesmal muss jedoch hallo / am Ende der URL hinzugefügt werden. Geben Sie die URL zur Bestätigung direkt in den Browser ein.

URL: ** https: // (Anwendungsname) .herokuapp.com / hello / **

Ergebnis der Bildschirmanzeige image.png

Es wurde wie oben im Browser angezeigt und die Anzeige von "Hello World Heroku Test!" Wurde erfolgreich bestätigt.

: Rakete: Verwandte Informationen

: link: django-toolbelt details https://pypi.org/project/django-toolbelt/

: link: Heorkus Hauptseite https://jp.heroku.com/

: Rakete: Meinungen etc.

Wenn Sie Meinungen oder Korrekturen haben, lassen Sie es uns bitte wissen.

Recommended Posts

Erste Schritte mit Heroku-Viewing Hello World in Python Django mit Raspberry PI 3
Erste Schritte mit Python Django (1)
Erste Schritte mit Python Django (4)
Erste Schritte mit Python Django (3)
Einführung in Python Django (6)
Erste Schritte mit Python Django (5)
Hallo Welt mit Raspberry Pi + Minecraft Pi Edition
Django 1.11 wurde mit Python3.6 gestartet
1.1 Erste Schritte mit Python
Erste Schritte mit Python
Erste Schritte mit Django 1
Erste Schritte mit Python
Erste Schritte mit Django 2
Erste Schritte mit AWS IoT in Python
Einstellungen für den Einstieg in MongoDB mit Python
Einführung in Python-Funktionen
Erste Schritte mit Django mit PyCharm
Python beginnend mit Hallo Welt!
Erste Schritte mit Python Responder v2
Verwenden Sie vl53l0x mit RaspberryPi (Python)
Erste Schritte mit Python-Webanwendungen
Erste Schritte mit Python für PHPer-Klassen
Erste Schritte mit Python Grundlagen von Python
[Hinweis] Hallo Weltausgabe mit Python
cout << "Hallo Welt! \ N" in Python
Erste Schritte mit genetischen Python-Algorithmen
Erste Schritte mit Python 3.8 unter Windows
Erste Schritte mit Python für PHPer-Funktionen
Beginnen Sie mit Python mit Blender
Verwenden Sie Python auf Raspberry Pi 3, um die LED zu beleuchten (Hello World)
Erste Schritte mit Python3 # 1 Grundkenntnisse erlernen
Erste Schritte mit Python Web Scraping Practice
Erste Schritte mit Python für PHPer-Super Basics
Erste Schritte mit Python Web Scraping Practice
Erste Schritte mit Dynamo von Python Boto
Beginnen wir mit TopCoder in Python (Version 2020)
Hallo Welt nicht localhost in Django
So zeigen Sie Hello World in Python an
Arbeiten mit GPS in Python für Raspberry Pi 3
Rabbit MQ Nachrichtenbenachrichtigungs-App mit Growl in Python ~ mit Raspeye und Julius ~
Hallo Welt- und Gesichtserkennung mit OpenCV 4.3 + Python
Hallo Welt mit gRPC / go in Docker-Umgebung
Discord Bot Himbeere Pi Null mit Python [Hinweis]
[Amateur Bemerkungen] Raspberry Pi 3, Wordpress gegen Raspberry Pi 3, Python, Django
MongoDB-Grundlagen: Erste Schritte mit CRUD mit JAVA
[Übersetzung] Erste Schritte mit Rust für Python-Programmierer
Ich habe L-Chika mit Razpai 4 (Python Edition) ausprobiert.
Begrüßen Sie die Welt mit Python mit IntelliJ
Hallo Welt mit Nginx + Uwsgi + Python auf EC2
Django Erste Schritte Teil 2 mit dem Eclipse Plugin (PyDev)
Holen Sie sich CPU-Informationen von Raspberry Pi mit Python
Erstellen Sie mit Django eine Hallo-Welt-Anwendung mit nur einer Datei
Erste Python ① Umgebungskonstruktion mit Pythonbrew & Hello World !!
Erste Schritte mit Django Teil 3 über Python3 und MySQL Connector
Materialien zum Lesen, wenn Sie mit Python beginnen
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
GPS-Tracking mit Raspeye 4B + BU-353S4 (Python)
Messen Sie die CPU-Temperatur von Raspeye mit Python
Ich habe eine Fehlermeldung erhalten, als ich opencv mit Raspeye in Python3 eingefügt habe [Remedy]