Bei der Clubaktivität Hackason habe ich eine einfache API erstellt, indem ich Python Flask zum ersten Mal auf Heroku gesetzt habe, also würde ich es gerne schreiben.
(Hinzugefügt am 28.10.2016) Der Code der API, die PhantomJS mit Selenium ausführt und mit Beautifulsoup kratzt, und seine Erklärung befinden sich im zweiten Teil. Re: Heroku-Leben ab Null mit Flask ~ Selen & PhantomJS & Beautifulsoup ~ Beim Es ist der zweite Teil, bis das Programm für Heroku bereitgestellt wird Re: Leben in Heroku von Null mit Flask ~ PhantomJS bis Heroku ~ Da es geschrieben steht, schauen Sie bitte.
Setzen Sie das, was Sie mit Flask of Python gemacht haben, auf Heroku und erstellen Sie eine API, die json zurückgibt, wenn Sie es erhalten Chrome misst übrigens
Erstellen Sie eine Python-Umgebung und erheben Sie Flask zu Heroku, um Hello World auszuführen
Eine Webseite mit Python kratzen, sie im JSON-Format verarbeiten, ausspucken und an Heroku senden, Von Heroku zu dem Ort, an dem Sie Json bekommen
Zunächst einmal beim Betrachten des Artikels der Person, die auf leicht verständliche Weise über Qiita usw. zusammenfasst. Setze ** pyenv ** und ** pyenv-virtualenv ** in Homebrew etc. ein! Referenz:
Versuchen Sie hier anstelle von pyenv-virtualenv, ein normales virtualenv zu setzen. Wenn Sie es einfügen, kann es problematisch sein. Stellen Sie daher sicher, dass Sie beim Einfügen die virtuelle Umgebung des pyenv-Plug-Ins eingeben. Referenz: http://qiita.com/who_you_me/items/09f572c842b1c3fea015
Wechseln Sie nach der Installation von pyenv und pyenv-virtualenv in den Ordner, den Sie auf Heroku hochladen möchten, und bereiten Sie die Umgebung vor.
$ mkdir hello-flask
#Erstellen Sie einen Projektordner
$ cd hello-flask
#In den Ordner verschieben
$ pyenv virtualenv 3.5.1 v3.5.1-flask
# v3.5.1-Erstellen Sie eine Umgebung mit dem Namen flask
$ pyenv versions
# v3.5.1-Bestätigen Sie, dass der Kolben hinzugefügt wurde
$ pyenv shell v3.5.1-flask
#Wenden Sie diese Umgebung unterhalb des Arbeitsordners an
$ pyenv rehash
#Für alle Fälle aufwärmen
$ pyenv versions
# v3.5.1-Vergewissern Sie sich, dass es in den Kolben gebracht wurde
Auf diese Weise werden andere Umgebungen nicht verschmutzt, selbst wenn Sie verschiedene Pakete in diesen Ordner legen. Wenn Sie Flask auf andere Ordner anwenden, können Sie dieselbe Umgebung verwenden! Yay!
Flask Schließen Sie das diesmal verwendete Python-Framework ein
$ pip install flask
Gunicorn Geben Sie auch den diesmal verwendeten Webserver an
$ pip install gunicorn
$ touch hello.py Procfile
#Erstellen Sie eine Datei, um die Kolbendatei und die Einstellungen zu schreiben
hello.py
# -*- coding: utf-8 -*-
#Bei der Verwendung von Japanisch unbedingt erforderlich
#Importieren Sie die erforderlichen Bibliotheken wie z. B. den Kolben
import os
from flask import Flask
#Instanziieren Sie Ihren Namen als App
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World!'
#Bestimmen Sie, ob Sie mit Bash schlagen oder mit Import einfügen
if __name__ == '__main__':
app.run()
Procfile
web: gunicorn hello:app --log-file=-
Wenn Sie sich bisher vorbereitet haben, funktioniert der Rest, wenn Sie es mit Python starten! Praktisch!
$ python hello.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Es wird so sein, also sei egoistisch, wie dir gesagt wird Wenn Sie auf http://127.0.0.1:5000/ zugreifen ...
Sie können das Programm beenden, indem Sie gleichzeitig wie geschrieben die Tastenkombination und C drücken.
https://www.heroku.com/ Erstellen Sie ein Konto aus der Anmeldung. Es scheint, dass die Bestätigungsmail für die Fertigstellung innerhalb von 15 Minuten zurückgeschickt wird. Warten Sie also gemächlich
Wenn Sie ein neues registrieren und das Dashboard anzeigen können, können Sie loslegen.
Ich werde endlich das geben, was ich Heroku gemacht habe!
$ pip freeze > requirements.txt
Heroku schaut sich diese Datei an und bereitet Bibliotheken usw. vor. Wenn Sie diese Datei auf Heroku hochladen, ohne sie zu aktualisieren, wird eine Fehlermeldung angezeigt.
$ git init
#Setze git in den Ordner
$ git add .
#Alles hinzufügen
$ git commit -m "helloworld"
#Machen Sie den Commit-Namen helloworld und legen Sie fest
$ heroku login
#Bei heroku anmelden Geben Sie die registrierte E-Mail-Adresse ein und übergeben Sie
$ heroku create hello-flask
#Erstellen Sie ein neues Projekt für Heroku
Wenn Sie Heroku im Web anstatt auf Heroku erstellen, wird sogar ein Remote-Repository für Git eingerichtet. Der Projektname dieses Heroku, einschließlich anderer Benutzer **, kann jedoch nicht denselben Namen in Heroku ** verwenden. Wenn Sie ihn also nicht erstellen können, können Sie danach eine Nummer hinzufügen. Wenn Sie nach der Erstellung von Heroku nichts schreiben, gibt Heroku ihm automatisch einen geeigneten Namen.
$ git push heroku master
#Schieben Sie es in das Remote-Repository von Heroku, indem Sie es zum Heroku-Master machen
#Mit diesem einen Befehl können Sie die Bibliothek auf Heroku stellen und verschiedene Dinge tun.
$ heroku open
#Dieser Befehl öffnet es in Ihrem Browser, ohne die URL zu kopieren
Wenn die Heroku-URL mit geöffnetem Heroku geöffnet wird, können Sie Hello World sehen.
Wenn Sie zu diesem Zeitpunkt den zurückgegebenen Inhaltstext json erstellen können, sollte es sich um eine sogenannte json-API handeln! Yay!
Wenn ich sehe, was ich auf Heroku hochgeladen habe und eine Fehlermeldung erhalte,
$ heroku logs
Werfen wir einen Blick darauf
Wenn Sie sich Protokolle ansehen, möchten Sie diese möglicherweise nicht sehen, da viele Zeilen vorhanden sind. Suchen Sie jedoch nach dem Dateinamen, den Sie daraus erstellt haben
File "/app/hello.py", line 10
Wenn Sie so etwas schreiben, wissen Sie, dass dieser Teil oder der damit verbundene Teil falsch ist.
Oben in der Datei
# -*- coding: utf-8 -*-
Hast du vergessen zu schreiben? Erforderlich, wenn Sie Japanisch auch im Kommentar verwenden. Wenn Sie Japanisch an einer Stelle verwenden, die nicht auskommentiert ist, müssen Sie möglicherweise am Anfang u hinzufügen
hello.py
#Bei der Ausgabe auf Japanisch
def index():
return u'Hallo Welt! !!'
$ pip freeze > requirements.txt
Haben Sie vergessen, die Datei resources.txt zu erstellen? Wenn Sie pushen können, aber einen Fehler erhalten, nachdem Sie diesen Befehl einmal ausgeführt haben, Überprüfen Sie, ob Sie die neu hinzugefügte Bibliothek in der Datei verwenden
Wenn Sie Verbesserungen oder Fehler haben, teilen Sie uns dies bitte in den Kommentaren mit.
Twitter:@ymgn_ll
Recommended Posts