Si vous souhaitez simplement fournir de manière statique du HTML, du CSS, du JS, etc. lorsque vous souhaitez créer un petit prototype d'application Web pour l'expérimentation à portée de main
python -mSimpleHTTPServer
Il semble que la popularité du jeu a considérablement augmenté, mais quand vous pensez: "Oh, je veux économiser un peu de données", la distribution statique ne suffit pas. (À l'exclusion de la technique de puissance d'empilement sur le paramètre GET et de le laisser dans le journal)
Donc, parce que c'est devenu une telle situation, je l'ai implémentée avec Flask en environ 1 pomodoro (25 minutes), mais quand j'ai vu Facebook, il y avait une personne qui a dit que Socket serait utilisé dans une situation similaire, donc c'est sur le blog J'ai pensé qu'il fallait l'écrire.
Je surestime le temps qu'il faut pour apprendre le cadre. Pourquoi ne pas faire Quickstart pendant 25 minutes pour le moment? Par rapport à la mise en œuvre d'un serveur avec Socket, le temps d'apprentissage est payé immédiatement. http://flask.pocoo.org/docs/quickstart/
Voici ce que j'ai réellement mis en œuvre en 25 minutes: https://gist.github.com/nishio/be5b5071a8c8fb94836b
J'ai commencé par copier Hello world, il y a donc des traces dans le nom de la fonction, et je n'ai pas effacé l'impression, mais c'est un prototype sale qui vient d'être réalisé.
Ce sont ces trois lignes qui livrent statiquement sous un annuaire spécifique
@app.route('/collecting/<path:filename>')
def send_foo(filename):
return send_from_directory('../collecting', filename)
Ces 4 lignes enregistrent le POST dans une URL spécifique. D'ailleurs, comme je ne l'utilise que rarement par moi-même, je l'enregistre dans un fichier car je n'ai pas besoin d'une base de données.
@app.route('/api/save/<filename>', methods=['POST'])
def save(filename):
file(filename, 'w').write(request.form['data'])
return 'ok'
De plus, Hello world n'a pas d'option de débogage, mais si vous l'ajoutez, vous pouvez voir les traces de pile à 500 et vous pouvez exécuter du code de manière interactive à chaque image de traces de pile, afin que vous puissiez en rechercher la cause. Pratique.
app.run(debug=True)
Pour les fabricants de prototypes, investir 25 minutes dans l'apprentissage Flask est un excellent pari.
Postscript: Oh, j'ai oublié de l'écrire, mais le côté client utilise jQuery et l'envoi de données à cette API ressemble à ceci:
$.post('/api/save/hoge', {'data': 'datadatadata'})
Recommended Posts