Une note personnelle décrivant les étapes à suivre pour que Flask, le framework Web Python, fonctionne sur Google App Engine. Lors de l'exécution de la procédure suivante, nous nous référons aux articles suivants pour de nombreuses parties.
[Exécuter Flask sur Google App Engine] (http://blog.kaneshin.co/entry/2016/09/05/010804)
[Jusqu'à l'utilisation de Flask avec Google App Engine] (http://mw17.hatenablog.jp/entry/2015/09/18/004714)
Google App Engine (SE) nécessite la version 2.7 de Python. Lorsque j'ai créé l'environnement Django pour la première fois, je l'ai configuré pour que la version spécifiée de l'environnement virtuel anaconda puisse être utilisée, donc je vais l'utiliser également. (* Pour plus de détails, reportez-vous aux étapes 3 à 7 de l'article suivant.)
Ci-dessous, continuez.
Terminal
$ pyenv global anaconda2-4.2.0 (#La version spécifiée de l'environnement virtuel est définie pour tous les répertoires)
$ pyenv virtualenv anaconda2-4.2.0 flask001
(# "flask001"Avec le nom, la version"anaconda2-4.2.0"Créer un nouvel environnement virtuel pour)
$ python --version (#Vérifier la version de python)
Python 2.7.12 :: Anaconda 4.2.0 (x86_64)
$ pyenv versions
system
* anaconda2-4.2.0
anaconda3-4.2.0
flask001
(#Dans un environnement virtuel qui peut être spécifié avec pyenv,"flask001"Est ajouté)
Terminal
$ mkdir myflask (#Répertoire pour installer Flask"myflask"Créer)
$ cd myflask (# "myflask"Déplacer vers le répertoire)
$ pyenv local flask001 (# "myflask"Environnement virtuel dans l'annuaire"flask001"L'ensemble)
$ pyenv versions
system
anaconda2-4.2.0
anaconda3-4.2.0
* flask001
(#Il est possible d'entrer automatiquement dans l'environnement virtuel créé par virtualenv simplement en se déplaçant vers le répertoire spécifié.)
Téléchargez le package d'archive SDK pour Mac OS X (x86_64) à partir de la page suivante et placez tous les fichiers extraits après décompression dans n'importe quel répertoire.
Terminal
$ cd $HOME
$ mkdir .py_appengine
$ cd .py_appengine
(# ".py_appengine"Créez un répertoire et placez le fichier du SDK Cloud téléchargé et développé sous le répertoire.)
Terminal
$ cd $HOME
$ vim ~/.bash_profile (# .bash_Décrivez le contenu suivant dans le fichier de profil)
# Set path for Python_GoogleAppEngine
export PATH="$PATH:$HOME/.py_appengine:$HOME/.py_appengine/google-cloud-sdk/platform/google_appengine"
Terminal
source ~/.bash_profile (#Refléter les paramètres)
Terminal
$ cd $HOME/.py_appengine
$ ./google-cloud-sdk/install.sh (# install.Exécutez sh pour initialiser le SDK)
# "You must log in to continue. Would you like to log in (Y/n)?"
# "Y"Entrez pour lancer le navigateur et ouvrir la page Google Cloud Platform.
#Lorsque vous vous connectez, l'authentification du SDK Google Cloud est terminée.
$ ./google-cloud-sdk/bin/gcloud init (#Exécutez gcloud init pour initialiser le SDK)
Terminal
$ cd $HOME/myflask
$ mkdir lib (#Créez un répertoire lib pour installer Flask)
$ pip install -t lib flask (#Installez Flask dans le répertoire lib)
Téléchargez les 3 fichiers sur github et placez-les dans la même hiérarchie que le répertoire lib. (* Placé sous le répertoire "myflask" ici. De plus, les 3 fichiers sont utilisés avec les paramètres par défaut)
python
myflask
|_ lib/
|_ app.yaml - (1)
|_ appengine_config.py - (2)
|_ main.py - (3)
(1) fichier app.yaml Décrit le gestionnaire de requêtes vers App Engine et les paramètres de chemin de l'application vers les fichiers statiques.
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) fichier appengine_config.py Décrit les paramètres de chargement du répertoire lib lors de l'exécution d'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) fichier main.py Importez Flask dans le fichier et décrivez les paramètres de routage.
[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
(référence)
Terminal
$ dev_appserver.py . (#Dev dans le SDK App Engine_appserver.Exécuter le fichier py)
# "Do you want to continue (Y/n)?"Est affiché"y"Entrer
Après avoir exécuté la commande, saisissez "http: // localhost: 8080" dans le champ d'adresse du navigateur. Si «Hello World!» S'affiche, cela signifie que l'opération réussit.
Connectez-vous à la page Google Cloud Platform et créez un projet à déployer à partir de l'écran d'administration.
Terminal
$ open https://appengine.google.com/start (#Connectez-vous au site App Engine et créez d'abord les ressources App Engine à utiliser dans le projet *"asia-northeast1"choisir)
$ appcfg.py update -A <ID du projet> -V v1 . (# <ID du projet> には手順 9 で用意したID du projet を入力)
<référence>
#S'il ne s'agit pas de votre premier déploiement, exécutez d'abord la commande suivante pour définir le projet comme projet par défaut, puis exécutez à nouveau la commande ci-dessus.
$ appcfg.py set_default_version -V v1 -A <ID du projet>
Après avoir exécuté la commande, saisissez "https: //
(référence)
Recommended Posts