[PYTHON] Veröffentlichen Sie eine Web-App in 4 Minuten 33 Sekunden mit Heroku x Flasche

Über diesen Artikel

Wir werden Ihnen vorstellen, wie Sie mit den folgenden beiden Methoden einfach und schnell mit der Entwicklung von Webanwendungen beginnen können. Das Ziel ist 4 Minuten und 33 Sekunden vom Beginn der Entwicklung bis zur Veröffentlichung.

Eigentlich glaube ich nicht, dass eine Anfrage * sofort * innerhalb von 4 Minuten und 33 Sekunden nach dem Treffen veröffentlicht werden muss. Die Bereitstellung in 4 Minuten und 33 Sekunden ist jedoch ein Beweis dafür, dass die Hürden für die Webentwicklung stetig sinken, und ich denke, es ist wichtig, dieses Gefühl mit dem Code zu haben.

Was Sie verstehen können, wenn Sie diesen Artikel lesen

Vom Umweltbau bis zur Veröffentlichung

0. Vorbereitung

Folgendes muss installiert sein.

1. Umgebungskonstruktion (Git-Repository-Initialisierung / Erstellung einer virtuellen Python-Umgebung)

$ mkdir agile-dev
$ cd agile-dev
$ git init
$ pyenv virtualenv 2.7.9 agile-dev	#Irgendein
$ pyenv local agile-dev				#Irgendein

2. Hallo Welt App Entwicklung

Installation von Bibliotheken und Anwendungsimplementierung für die Entwicklung erforderlich. Der Inhalt von app.py ist übrigens Rezepte - Flasche 0.13-dev Dokumentation-, Also kopiere ich nur hier.

$ pip install bottle

app.py


import os
from bottle import route, run

@route("/")
def hello_world():
        return "Hello World!"

run(host="0.0.0.0", port=int(os.environ.get("PORT", 5000)))

3. Erstellen Sie die für die Heroku-Bereitstellung erforderlichen Dateien

$ pip freeze > requirements.txt			#Liste der abhängigen Bibliotheken
$ echo web: python app.py > Procfile	#Anwendungstyp und Einstiegspunktspezifikation

Dies ist das Ende der Entwicklung, also werde ich es begehen.

$ git add .
$ git commit -m "initial commit"

4. Erstellen und veröffentlichen Sie die Heroku-App

Ich werde es sofort veröffentlichen.

$ heroku apps:create agile-dev
$ git push heroku master

Wenn "remote: Überprüfung der Bereitstellung ... abgeschlossen" als Ergebnis der Befehlsausführung zurückgegeben wird, ist die Bereitstellung abgeschlossen. Überprüfen Sie dies also mit einem Browser. Die Veröffentlichungs-URL sollte im Terminal angezeigt werden. remote: https://agile-dev.herokuapp.com/ deployed to Heroku

$ open https://agile-dev.herokuapp.com/

スクリーンショット 2015-04-29 16.14.22.png

Es wurde sicher veröffentlicht!

Vorlaufzeit

Vergleich der Ergebnisse der Ausführung des Befehls "Datum" vor und nach Arbeitsbeginn ... ** 3 Minuten 54 Sekunden **. Es endete kürzer als 4 Minuten und 33 Sekunden.

macbook-pro:~ ohbarye$ date
Mittwoch, 29. April 2015, 15:40:49 Uhr JST
~~ (Abkürzung) ~~
macbook-pro:agile-dev ohbarye$ date
Mittwoch, 29. April 2015, 15:44:43 Uhr JST

Aufräumen

Reinigen Sie es und setzen Sie es wieder ein.

$ heroku apps:destroy --app agile-dev --confirm agile-dev
$ pyenv uninstall agile-dev
$ cd ../
$ rm -rf agile-dev

Übrigens waren es ** 1 Minute 8 Sekunden **, also insgesamt etwas mehr als 5 Minuten.

Laufzeitergebnisprotokoll

Ich werde es als Referenz einfügen.

Entwicklungsbereitstellung


macbook-pro:~ ohbarye$ date
Mittwoch, 29. April 2015, 15:40:49 Uhr JST
macbook-pro:~ ohbarye$ mkdir agile-dev
macbook-pro:~ ohbarye$ cd agile-dev
macbook-pro:agile-dev ohbarye$ git init
Initialized empty Git repository in /Users/ohbarye/dev/~/agile-dev/.git/
macbook-pro:agile-dev ohbarye$ pyenv virtualenv 2.7.9 agile-dev
New python executable in /Users/ohbarye/.pyenv/versions/agile-dev/bin/python2.7
Also creating executable in /Users/ohbarye/.pyenv/versions/agile-dev/bin/python
Installing setuptools, pip...done.
Ignoring indexes: https://pypi.python.org/simple/
Requirement already satisfied (use --upgrade to upgrade): setuptools in /Users/ohbarye/.pyenv/versions/agile-dev/lib/python2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): pip in /Users/ohbarye/.pyenv/versions/agile-dev/lib/python2.7/site-packages
Cleaning up...
macbook-pro:agile-dev ohbarye$ pyenv local agile-dev
macbook-pro:agile-dev ohbarye$ pip install bottle
Collecting bottle
  Using cached bottle-0.12.8.tar.gz
Installing collected packages: bottle
  Running setup.py install for bottle
Successfully installed bottle-0.12.8
macbook-pro:agile-dev ohbarye$ vim app.py
macbook-pro:agile-dev ohbarye$ pip freeze > requirements.txt
macbook-pro:agile-dev ohbarye$ echo web: python app.py > Procfile
macbook-pro:agile-dev ohbarye$ git add .
macbook-pro:agile-dev ohbarye$ git commit -m "initial commit"
[master (root-commit) f213a06] initial commit
 4 files changed, 11 insertions(+)
 create mode 100644 .python-version
 create mode 100644 Procfile
 create mode 100644 app.py
 create mode 100644 requirements.txt
macbook-pro:agile-dev ohbarye$ heroku apps:create agile-dev
Creating agile-dev... done, stack is cedar-14
https://agile-dev.herokuapp.com/ | https://git.heroku.com/agile-dev.git
Git remote heroku added
macbook-pro:agile-dev ohbarye$ git push heroku master
Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (6/6), 518 bytes | 0 bytes/s, done.
Total 6 (delta 0), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Python app detected
remote: -----> Installing runtime (python-2.7.9)
remote: -----> Installing dependencies with pip
remote:        Collecting bottle==0.12.8 (from -r requirements.txt (line 1))
remote:          Downloading bottle-0.12.8.tar.gz (69kB)
remote:        Installing collected packages: bottle
remote:          Running setup.py install for bottle
remote:            changing mode of build/scripts-2.7/bottle.py from 600 to 755
remote:            changing mode of /app/.heroku/python/bin/bottle.py to 755
remote:        Successfully installed bottle-0.12.8
remote: 
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote: 
remote: -----> Compressing... done, 35.1MB
remote: -----> Launching... done, v3
remote:        https://agile-dev.herokuapp.com/ deployed to Heroku
remote: 
remote: Verifying deploy... done.
To https://git.heroku.com/agile-dev.git
 * [new branch]      master -> master
macbook-pro:agile-dev ohbarye$ open https://agile-dev.herokuapp.com/
macbook-pro:agile-dev ohbarye$ date
Mittwoch, 29. April 2015, 15:44:43 Uhr JST
macbook-pro:agile-dev ohbarye$ 

Aufräumen


macbook-pro:agile-dev ohbarye$ date
Mittwoch, 29. April 2015, 15:49:11 Uhr JST
macbook-pro:agile-dev ohbarye$ heroku apps:destroy --app agile-dev --confirm agile-dev
Destroying agile-dev (including all add-ons)... done
macbook-pro:agile-dev ohbarye$ pyenv uninstall agile-dev
pyenv: remove /Users/ohbarye/.pyenv/versions/agile-dev? y
macbook-pro:agile-dev ohbarye$ cd ../
macbook-pro:~ ohbarye$ rm -rf agile-dev/
macbook-pro:~ ohbarye$ date
Mittwoch, 29. April 2015, 15:50:19 Uhr JST
macbook-pro:~ ohbarye$ 

Recommended Posts

Veröffentlichen Sie eine Web-App in 4 Minuten 33 Sekunden mit Heroku x Flasche
Einfache 3 Minuten TensorBoard in Google Colab (mit TensorFlow 2.x)
Webanwendung mit Flasche (1)
So stellen Sie eine Django-App in nur 5 Minuten für Heroku bereit
Stellen Sie Django in 3 Minuten mit Docker-Compose bereit
Richten Sie mit http.server in Python 3 in 30 Sekunden einen lokalen Webserver ein
Bis die mit Flasche erstellte Webanwendung auf Heroku veröffentlicht (bereitgestellt) wird