Eine persönliche Notiz, in der die Schritte beschrieben werden, mit denen Flask, das Python-Webframework, in Google App Engine funktioniert. Bei der Durchführung des folgenden Verfahrens verweisen wir für viele Teile auf die folgenden Artikel.
[Flask in Google App Engine ausführen] (http://blog.kaneshin.co/entry/2016/09/05/010804)
[Bis zur Verwendung von Flask mit Google App Engine] (http://mw17.hatenablog.jp/entry/2015/09/18/004714)
Für Google App Engine (SE) ist Python Version 2.7 erforderlich. Als ich zuerst die Django-Umgebung erstellt habe, habe ich sie so eingestellt, dass die angegebene Version der virtuellen Anaconda-Umgebung verwendet werden kann, also werde ich das auch verwenden. (* Einzelheiten finden Sie in den Schritten 3 bis 7 im folgenden Artikel.)
Unten fahren Sie fort.
Terminal
$ pyenv global anaconda2-4.2.0 (#Die angegebene Version der virtuellen Umgebung ist für alle Verzeichnisse festgelegt)
$ pyenv virtualenv anaconda2-4.2.0 flask001
(# "flask001"Mit dem Namen, Version"anaconda2-4.2.0"Erstellen Sie eine neue virtuelle Umgebung für)
$ python --version (#Überprüfen Sie die Python-Version)
Python 2.7.12 :: Anaconda 4.2.0 (x86_64)
$ pyenv versions
system
* anaconda2-4.2.0
anaconda3-4.2.0
flask001
(#In der virtuellen Umgebung, die mit pyenv angegeben werden kann,"flask001"Hinzugefügt)
Terminal
$ mkdir myflask (#Verzeichnis zur Installation von Flask"myflask"Erstellen)
$ cd myflask (# "myflask"In Verzeichnis wechseln)
$ pyenv local flask001 (# "myflask"Virtuelle Umgebung im Verzeichnis"flask001"Der Satz)
$ pyenv versions
system
anaconda2-4.2.0
anaconda3-4.2.0
* flask001
(#Es ist möglich, die von virtualenv erstellte virtuelle Umgebung automatisch aufzurufen, indem Sie einfach in das angegebene Verzeichnis wechseln.)
Laden Sie das SDK-Archivpaket für Mac OS X (x86_64) von der folgenden Seite herunter und platzieren Sie alle extrahierten Dateien nach der Dekomprimierung in einem beliebigen Verzeichnis.
Terminal
$ cd $HOME
$ mkdir .py_appengine
$ cd .py_appengine
(# ".py_appengine"Erstellen Sie ein Verzeichnis und platzieren Sie die heruntergeladenen und erweiterten Cloud SDK-Dateien unter dem Verzeichnis.)
Terminal
$ cd $HOME
$ vim ~/.bash_profile (# .bash_Beschreiben Sie den folgenden Inhalt in der Profildatei)
# Set path for Python_GoogleAppEngine
export PATH="$PATH:$HOME/.py_appengine:$HOME/.py_appengine/google-cloud-sdk/platform/google_appengine"
Terminal
source ~/.bash_profile (#Reflektieren Sie die Einstellungen)
Terminal
$ cd $HOME/.py_appengine
$ ./google-cloud-sdk/install.sh (# install.Führen Sie sh aus, um das SDK zu initialisieren)
# "You must log in to continue. Would you like to log in (Y/n)?"
# "Y"Geben Sie ein, um den Browser zu starten und die Google Cloud Platform-Seite zu öffnen.
#Wenn Sie sich anmelden, ist die Google Cloud SDK-Authentifizierung abgeschlossen.
$ ./google-cloud-sdk/bin/gcloud init (#Führen Sie gcloud init aus, um das SDK zu initialisieren)
Terminal
$ cd $HOME/myflask
$ mkdir lib (#Erstellen Sie ein lib-Verzeichnis, um Flask zu installieren)
$ pip install -t lib flask (#Installieren Sie Flask im lib-Verzeichnis)
Laden Sie die 3 Dateien auf github herunter und platzieren Sie sie in derselben Hierarchie wie das lib-Verzeichnis. (* Hier im Verzeichnis "myflask" abgelegt. Außerdem werden alle 3 Dateien mit den Standardeinstellungen verwendet.)
python
myflask
|_ lib/
|_ app.yaml - (1)
|_ appengine_config.py - (2)
|_ main.py - (3)
(1) app.yaml-Datei Beschreibt den Anforderungshandler für App Engine und die Pfadanwendungseinstellungen für statische Dateien.
Terminal
$ cd $HOME/myflask
[app.yaml]
# This file specifies your Python application's runtime configuration
# including URL routing, versions, static file uploads, etc. See
# https://developers.google.com/appengine/docs/python/config/appconfig
# for details.
runtime: python27
api_version: 1
threadsafe: yes
# Handlers define how to route requests to your application.
handlers:
# App Engine serves and caches static files contained in the listed directories
# (and subdirectories). Uncomment and set the directory as needed.
#- url: /client
# static_dir: client
# This handler tells app engine how to route requests to a WSGI application.
# The script value is in the format <path.to.module>.<wsgi_application>
# where <wsgi_application> is a WSGI application object.
- url: .* # This regex directs all routes to main.app
script: main.app
# Third party libraries that are included in the App Engine SDK must be listed
# here if you want to use them. See
# https://developers.google.com/appengine/docs/python/tools/libraries27 for
# a list of libraries included in the SDK. Third party libs that are *not* part
# of the App Engine SDK don't need to be listed here, instead add them to your
# project directory, either as a git submodule or as a plain subdirectory.
# TODO: List any other App Engine SDK libs you may need here.
#libraries:
#- name: jinja2
# version: latest
(2) Datei appengine_config.py Beschreibt die Einstellungen zum Laden des lib-Verzeichnisses beim Ausführen von App Engine.
[appengine_config.py]
# `appengine_config.py` is automatically loaded when Google App Engine
# starts a new instance of your application. This runs before any
# WSGI applications specified in app.yaml are loaded.
from google.appengine.ext import vendor
# Third-party libraries are stored in "lib", vendoring will make
# sure that they are importable by the application.
vendor.add('lib')
(3) main.py-Datei Importieren Sie Flask in die Datei und beschreiben Sie die Einstellungen für das Routing.
[main.py]
# `main` is the top level module for your Flask application.
# Import the Flask Framework
from flask import Flask
app = Flask(__name__)
# Note: We don't need to call run() since our application is embedded within
# the App Engine WSGI application server.
@app.route('/')
def hello():
"""Return a friendly HTTP greeting."""
return 'Hello World!'
@app.errorhandler(404)
def page_not_found(e):
"""Return a custom 404 error."""
return 'Sorry, Nothing at this URL.', 404
@app.errorhandler(500)
def application_error(e):
"""Return a custom 500 error."""
return 'Sorry, unexpected error: {}'.format(e), 500
(Referenz)
Terminal
$ dev_appserver.py . (#Entwickler im App Engine SDK_appserver.Führen Sie die py-Datei aus)
# "Do you want to continue (Y/n)?"Wird angezeigt"y"Eingeben
Geben Sie nach Ausführung des Befehls "http: // localhost: 8080" in das Adressfeld des Browsers ein. Wenn "Hallo Welt!" Angezeigt wird, ist dies erfolgreich.
Melden Sie sich auf der Google Cloud Platform-Seite an und erstellen Sie ein Projekt, das über den Administratorbildschirm bereitgestellt werden soll.
Terminal
$ open https://appengine.google.com/start (#Melden Sie sich auf der App Engine-Website an und erstellen Sie zunächst die App Engine-Ressourcen, die im Projekt verwendet werden sollen *"asia-northeast1"wählen)
$ appcfg.py update -A <Projekt-ID> -V v1 . (# <Projekt-ID> には手順 9 で用意したProjekt-ID を入力)
<Referenz>
#Wenn dies nicht Ihre erste Bereitstellung ist, führen Sie zuerst den folgenden Befehl aus, um das Projekt als Standard festzulegen, und führen Sie dann den obigen Befehl erneut aus.
$ appcfg.py set_default_version -V v1 -A <Projekt-ID>
Geben Sie nach Ausführung des Befehls "https: //
(Referenz)
Recommended Posts