[PYTHON] Verwenden Sie Flask als nächsten Schritt für SimpleHTTPServer

Wenn Sie nur HTML, CSS, JS usw. statisch bereitstellen möchten, wenn Sie einen kleinen Prototyp einer Webanwendung zum Experimentieren erstellen möchten

python -mSimpleHTTPServer

Es scheint, dass die Popularität des Spiels erheblich gestiegen ist, aber wenn Sie denken: "Oh, ich möchte ein wenig Daten speichern", reicht die statische Verteilung nicht aus. (Ausgenommen die Power-Technik, den GET-Parameter zu stapeln und im Protokoll zu belassen)

Da es zu einer solchen Situation wurde, implementierte ich es mit Flask in ungefähr 1 Pomodoro (25 Minuten), aber als ich Facebook sah, gab es eine Person, die sagte, dass Socket in einer ähnlichen Situation verwendet werden würde, also ist dies auf dem Blog Ich dachte, es sollte geschrieben werden.

Ich überschätze die Zeit, die zum Erlernen des Frameworks benötigt wird. Warum machst du vorerst keinen 25-minütigen Schnellstart? Im Vergleich zur Implementierung eines Servers mit Socket wird die für das Lernen benötigte Zeit sofort bezahlt. http://flask.pocoo.org/docs/quickstart/

Folgendes habe ich in 25 Minuten implementiert: https://gist.github.com/nishio/be5b5071a8c8fb94836b

Ich habe mit dem Kopieren von Hello world begonnen, daher enthält der Funktionsname Spuren, und ich habe den Druck nicht gelöscht, aber dies ist ein schmutziger Prototyp, der gerade erstellt wurde.

Es sind diese drei Zeilen, die statisch unter einem bestimmten Verzeichnis liefern

    @app.route('/collecting/<path:filename>')
    def send_foo(filename):
        return send_from_directory('../collecting', filename)

Diese 4 Zeilen speichern den POST unter einer bestimmten URL. Übrigens, da ich es nur selten alleine benutze, speichere ich es in einer Datei, weil ich keine Datenbank benötige.

    @app.route('/api/save/<filename>', methods=['POST'])
    def save(filename):
        file(filename, 'w').write(request.form['data'])
        return 'ok'

Außerdem verfügt Hello World nicht über eine Debug-Option. Wenn Sie diese jedoch hinzufügen, werden Stack-Traces bei 500 angezeigt, und Sie können Code in jedem Frame von Stack-Traces interaktiv ausführen, um die Ursache zu untersuchen. Praktisch.

    app.run(debug=True)

Für Prototypenhersteller ist es eine gute Wahl, 25 Minuten in das Lernen von Flaschen zu investieren.

Nachtrag: Oh, ich habe vergessen, es zu schreiben, aber die Clientseite verwendet jQuery, und das Senden von Daten an diese API sieht folgendermaßen aus:

    $.post('/api/save/hoge', {'data': 'datadatadata'})

Recommended Posts

Verwenden Sie Flask als nächsten Schritt für SimpleHTTPServer
Verwenden Sie als nächstes Python (Flask) für Heroku!
Verwenden Sie BMFont als Schriftart für Pyglet
So verwenden Sie MkDocs zum ersten Mal
Verwenden Sie vorerst Logger mit Python
Verwenden Sie das elektronische Papiermodul als Aufgabenliste
Verwenden Sie get so viel wie möglich für Referenzen vom Typ Wörterbuch
Geben Sie MinGW als den in Python verwendeten Compiler an
Neben Excel jupyter Notebook vorerst
Verwenden Sie für MeCab das Wörterbuch zur Erkennung von Firmennamen "JCLdic"