Au hackason de l'activité du club, j'ai créé une API simple en mettant Python Flask sur Heroku pour la première fois, alors j'aimerais l'écrire.
(Ajouté le 28/10/2016) Le code de l'API qui exécute PhantomJS avec Selenium et gratte avec Beautifulsoup et son explication sont dans la deuxième partie. Re: La vie Heroku à partir de zéro avec Flask ~ Selenium & PhantomJS & Beautifulsoup ~ À C'est la deuxième partie jusqu'à ce que vous déployez le programme sur Heroku Re: Life in Heroku à partir de zéro avec Flask ~ PhantomJS à Heroku ~ Puisqu'il est écrit, jetez un œil.
Mettez ce que vous avez fait avec Flask of Python sur Heroku et créez une API qui renvoie json lorsque vous l'obtenez À propos, Chrome mesure
Créez un environnement Python et élevez Flask vers Heroku pour faire Hello World
Gratter une page Web avec Python, la traiter au format json et la cracher, la pousser vers Heroku, De Heroku à l'endroit où vous obtenez json
Tout d'abord, en regardant l'article de la personne qui résume de manière facile à comprendre sur Qiita etc. Mettez ** pyenv ** et ** pyenv-virtualenv ** dans homebrew etc.! référence:
Ici, au lieu de pyenv-virtualenv, essayez de mettre un virtualenv normal, Si vous le mettez, cela peut être gênant, alors assurez-vous de mettre dans le virtualenv du plug-in pyenv lorsque vous le mettez. Référence: http://qiita.com/who_you_me/items/09f572c842b1c3fea015
Après avoir installé pyenv et pyenv-virtualenv, déplacez-vous vers le dossier que vous prévoyez de télécharger sur Heroku et préparez l'environnement.
$ mkdir hello-flask
#Créer un dossier de projet
$ cd hello-flask
#Déplacer vers un dossier
$ pyenv virtualenv 3.5.1 v3.5.1-flask
# v3.5.1-Créer un environnement nommé flask
$ pyenv versions
# v3.5.1-Confirmez que le ballon est ajouté
$ pyenv shell v3.5.1-flask
#Appliquez cet environnement sous le dossier de travail
$ pyenv rehash
#Rehash juste au cas où
$ pyenv versions
# v3.5.1-Confirmez qu'il est déplacé vers le flacon
En faisant cela, même si vous placez différents packages dans ce dossier, les autres environnements ne seront pas pollués. Si vous appliquez Flask à d'autres dossiers, vous pouvez utiliser le même environnement! Yay!
Flask Inclure le framework Python utilisé cette fois
$ pip install flask
Gunicorn Inclure également le serveur Web utilisé cette fois
$ pip install gunicorn
$ touch hello.py Procfile
#Créer un fichier pour écrire le fichier et les paramètres du flacon
hello.py
# -*- coding: utf-8 -*-
#Absolument nécessaire lors de l'utilisation du japonais
#Importez les bibliothèques requises telles que flask
import os
from flask import Flask
#Instanciez votre nom en tant qu'application
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World!'
#Déterminez si vous frappez avec bash ou insérez avec l'importation
if __name__ == '__main__':
app.run()
Procfile
web: gunicorn hello:app --log-file=-
Si vous vous préparez jusqu'à présent, le reste fonctionnera si vous le démarrez avec Python! Pratique!
$ python hello.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Ce sera comme ça, alors soyez égoïste comme on vous le dit Si vous accédez à http://127.0.0.1:5000/ ...
Vous pouvez quitter en appuyant sur Ctrl et C en même temps qu'écrit.
https://www.heroku.com/ Créez un compte à partir de l'inscription. Il semble que l'e-mail de confirmation d'achèvement sera retourné dans les 15 minutes, alors attendez tranquillement
Si vous pouvez en enregistrer un nouveau et voir le tableau de bord, vous êtes prêt à partir.
Je vais enfin donner ce que j'ai fait à Heroku!
$ pip freeze > requirements.txt
Heroku examine ce fichier et prépare les bibliothèques, etc. Si vous téléchargez ce fichier sur Heroku sans le mettre à jour, vous obtiendrez une erreur.
$ git init
#Définissez git dans le dossier
$ git add .
#Tout ajouter
$ git commit -m "helloworld"
#Faites le nom de commit helloworld et commettez
$ heroku login
#Connectez-vous à heroku Entrez l'adresse e-mail enregistrée et passez
$ heroku create hello-flask
#Créer un nouveau projet pour heroku
Si vous créez heroku sur le Web au lieu de heroku, il configurera même un référentiel distant pour git. Cependant, le nom de projet de cet heroku, y compris les autres utilisateurs, ** ne peut pas utiliser le même nom dans heroku **, donc si vous ne pouvez pas le créer, vous pouvez ajouter un numéro après lui. Si vous n'écrivez rien après la création de heroku, heroku lui donnera automatiquement un nom approprié.
$ git push heroku master
#Poussez vers le référentiel distant d'heroku en le rendant maître d'heroku
#Avec cette seule commande, vous pouvez mettre la bibliothèque sur heroku et faire diverses choses.
$ heroku open
#Cette commande l'ouvrira dans votre navigateur sans copier l'URL
Si l'URL heroku s'ouvre avec heroku ouvert, vous pouvez voir Hello World.
À ce stade, si vous pouvez rendre le texte de contenu renvoyé json, il devrait s'agir d'une API dite json! Yay!
Si vous obtenez une erreur lorsque vous voyez ce que vous avez téléchargé sur heroku,
$ heroku logs
Jetons un coup d'oeil à
Lorsque vous regardez les journaux, vous ne voudrez peut-être pas le voir car il y a beaucoup de lignes, mais recherchez le nom de fichier que vous avez créé à partir de celui-ci
File "/app/hello.py", line 10
Si vous écrivez quelque chose comme, vous savez que cette partie ou la partie qui y est liée est erronée.
En haut du fichier
# -*- coding: utf-8 -*-
Avez-vous oublié d'écrire? Obligatoire si vous utilisez le japonais même dans le commentaire. Si vous utilisez le japonais dans un endroit qui n'est pas commenté, vous devrez peut-être ajouter u au début
hello.py
#Lors de la sortie en japonais
def index():
return u'Bonjour le monde! !!'
$ pip freeze > requirements.txt
Avez-vous oublié de créer requirements.txt? De plus, si vous pouvez pousser mais obtenir une erreur, après avoir exécuté cette commande une fois, Vérifiez si vous utilisez la bibliothèque nouvellement ajoutée dans le fichier
Si vous avez des améliorations ou des erreurs, veuillez nous en informer dans les commentaires.
Twitter:@ymgn_ll