Je me demandais où déployer l'application faite avec Flask, et elle est écrite dans Official Deployment Document. J'ai décidé de l'essayer avec Heroku et dotCloud. Donc, Heroku n'avait pas beaucoup de dépendance à Flask dans Documentation, mais j'étais accro à dotCloud, alors j'ai fait une note. Oh, ce n'est pas que Heroku est bon et dotCloud est mauvais! Je souhaite plutôt le faire fonctionner avec dotCloud.
La documentation côté Flask
Parce qu'il est écrit, il s'agit d'un WSGI de base et Flask est organisé pour WSGI. En lisant le premier, le travail réel est comme le second.
Cependant, depuis que j'ai fait Heroku en premier, il n'a pas été configuré pour être écrit dans le paquet __init __. Py
. Créez un répertoire de packages et déplacez quelque chose comme ʻapp.py vers
__init __. Py. Ensuite, écrivez
wsgi.py. Si vous n'avez pas spécifié d'approche dans
dotcloud.yml, placez
wsgi.py` à la racine. Veuillez noter que ceci est différent de l'ancien document. Eh bien, même le premier est au début
Your WSGI callable should be named “application”, be located in a “wsgi.py” file, itself located at the top directory of the service.
Bien qu'il soit écrit, l'approche est spécifiée dans l'explication de procédure suivante.
Donc, cela commence à fonctionner, mais avec cela, l'échantillon s'arrête. L'application que j'essayais de déployer utilisait l'API Twitter, je dois donc mettre la clé. Je ne veux certainement pas mettre la clé dans SCM. Dans Heroku, il a été défini dans config: add. Vous pouvez maintenant le lire depuis os.environ.
Pour dotCloud, utilisez var set. La méthode de spécification était presque la même que Heroku, donc le code reste le même ... mais cela ne fonctionne pas du tout! Si vous lisez attentivement le document, vous devez lire environment.json. J'ai réécrit le code pour le lire d'ici.
Avec cela, j'ai pu l'amener au point où il pouvait bouger. Je n'ai pas encore touché à la partie liée à la base de données.
Je sens que je ne suis pas tellement accro, mais il a résolu la dépendance.
dotcloud logs appname.www
Le point le plus important est que c'était difficile parce que je ne savais pas au début. J'ai découvert que les journaux heroku étaient dans le Tutoriel Python de Heroku, mais dotCloud ne semblait pas l'avoir, donc je dois le trouver moi-même. eu. Il s'agit des journaux de consultation (http://docs.dotcloud.com/guides/logs/) dans les guides de plate-forme à gauche de la documentation. Ça a été beaucoup de progrès depuis que j'ai trouvé ça. En fait, lorsque je l'ai exécuté sans définir de variables d'environnement et que j'ai eu une erreur, cela m'a pris un certain temps sans en connaître la cause. Quand je regarde le journal, c'est comme ça. Si vous êtes bloqué, regardez le journal!
Recommended Posts