[PYTHON] Eindrücke von der Verwendung von Flask für einen Monat

2012 lernte ich Flask auf pyconjp usw. kennen und es war ein Mikro-Framework und ich hatte den Eindruck, dass es genauso genutzt werden kann wie ein kleiner Service. Nach einer Weile war die Rede davon, eine REST-API mit RDB zu erstellen, aber ich werde meine Eindrücke schreiben, dass ich es schwer hatte und mit Flask fehlgeschlagen bin.

  1. Einfach zu verwendende MethodView-Klasse Es war wirklich einfach, eine REST-API zu erstellen, denn wenn Sie eine Klasse erstellen, die die MethodView-Klasse für jeden Einstiegspunkt erbt und die Methode get / post / put / delete definiert, können Sie auf GET / POST / PUT / DELETE-Anforderungen antworten.

  2. Verwenden Sie POST nicht zum Aktualisieren von Ressourcen Ich habe die Spezifikation festgelegt, Updates per POST für API-Benutzer zu akzeptieren, aber als ich mit der Implementierung begann, dachte ich, dass dies problematisch sein würde. Diese Methode war für die Verwendung von SQLAlchemy als ORM nicht sehr geeignet. Wenn Sie die REAST-API mit POST / PUT / DELETE / GET erstellen, sind sowohl Entwickler als auch Benutzer zufrieden.

  3. Flask-SQL Alchemy ist schwierig zu verwenden. Flask-SQL Alchemy ist auch außerhalb des Beispiels schwierig zu verwenden, da es keine Anwendungsbeispiele gibt, die als Referenz verwendet werden können. Es ist flexibler, einfache SQL-Alchemie zu verwenden, und Sie können den Code für andere Stapelverarbeitungen verwenden. Ich denke, es ist besser, nicht so viele Erweiterungen wie möglich zu verwenden.

  4. Nicht viel Blueprint-Dokumentation Wenn der Code nach einer Weile wächst, ist ein Skript zu groß und ich möchte ein Modul namens Blueprint verwenden, das den Code unterteilt. Es enthält jedoch auch keine Dokumentation, und ich kann es durch Lesen des Codes verwenden Es braucht Zeit und Mühe, bis es möglich wird. Ich habe die Aufteilung mit Blueprint aufgegeben und sie in eine Datei gezwungen.

  5. Es ist schwer zu verstehen, wie man testet In Bezug auf 3,4,5 denke ich, dass dies im Allgemeinen zu einem Mangel an Dokumentation / Beispielcode führt. Flask hat nur wenige Verwendungsbeispiele, daher hoffe ich, dass die Menge an Informationen in diesem Abschnitt in Zukunft zunimmt.

  6. Parameter in DELETE-Anforderung können nicht empfangen werden Ich habe es erst bemerkt, als ich mit der Implementierung begonnen habe. Beachten Sie daher, dass Sie später in Schwierigkeiten geraten, wenn Sie eine Spezifikation übernehmen, die die Ressourcen zum Zeitpunkt des Löschens ändert. Addition Richtig, ich habe die Parameter mit request.args ["hoge"] in der DELETE-Anfrage wie unten erhalten. % curl -X DELETE "http://localhost:9999/users/100?hoge=100"

Was SQLAlchemy betrifft, habe ich versucht, es mit dem Wissen zu verwenden, dass ich es für eine Weile verwendet hatte, so dass es möglicherweise falsch war. Ich habe es geschrieben, weil ich vielleicht süchtig danach bin, als Anfänger etwas mit Flask + SQLAlchemy zu machen.

Ich hatte 2012 viel Erfahrung mit Flask, daher werde ich 2013 versuchen, neue Erfahrungen mit Django hinzuzufügen, das mehr Funktionen als Flask bietet.

Ich freue mich darauf, dieses Jahr wieder mit Ihnen zusammenzuarbeiten.


Amazon.co.jp: Technologie, die Web-HTTP, URI, HTML und REST unterstützt (WEB + DB PRESS plus): Yohei Yamamoto: Buch

PyCon JP 2012 - praktische Sitzung / Implementierung und Programmierung von Webanwendungen von Flask

Recommended Posts

Eindrücke von der Verwendung von Flask für einen Monat
Ein Memorandum zur Verwendung von eigen3
Vermeiden Sie die Fallstricke bei der Verwendung eines Mac (für Linux-Benutzer?)
Erstellen einer Webanwendung mit Flask ①
Erstellen einer Webanwendung mit Flask ③
Erstellen einer Webanwendung mit Flask ④
Abrufen einer Kombination von Elementen mithilfe von itertools
Was Java-Benutzer davon gehalten haben, die Go-Sprache für einen Tag zu verwenden
[Python] Teilen Sie eine große Flask-Datei mit Blueprint
Finden Sie die Anzahl der Tage in einem Monat
Ein Memorandum zum Berühren von Python Flask mit Heroku
Tipps für eine gute Verwendung von Elastic Search
Lassen Sie uns mit SWIG ein Modul für Python erstellen
Ein Memorandum über Methoden, die häufig beim maschinellen Lernen mit Scikit-Learn (für Anfänger) verwendet werden.
[Python] Implementierung von Clustering mit einem gemischten Gaußschen Modell
Erstellen Sie einen Datensatz mit Bildern, die für das Training verwendet werden sollen
Veröffentlichung eines Webdienstes zum Bewerten handgeschriebener Zeichen mit DeepLearning
Schneiden Sie einen Teil der Zeichenfolge mit einem Python-Slice aus
Hinweise zur Installation von Chainer 1.5 für GPU unter Windows
Eine kurze Zusammenfassung der Antivirensoftware für persönliches Linux
Ich habe mit Github-Aktionen ein Rad für Windows erstellt
[Python] Ich habe versucht, einen lokalen Server mit flask auszuführen
Python: Ruft eine Liste der Methoden für ein Objekt ab
Lesen Sie eine große Anzahl von Wertpapierberichten mit COTOHA
Implementierung eines Faltungs-Neuronalen Netzwerks mit nur Numpy
Ich habe versucht, Python (3) anstelle eines Funktionsrechners zu verwenden
Konstruktionsnotiz für eine maschinelle Lernumgebung von Python
(Für mich) Flask_2 (Liste und für, erweitert und ein bisschen mehr)
Eindrücke, Django zu berühren
Beispiel für die Verwendung von Lambda
Die Geschichte der Einrichtung eines VIP-Kanals im internen Chatwork
Implementierung von VGG16 mit Keras, die ohne Verwendung eines trainierten Modells erstellt wurden
Erstellen wir eine Funktion für den parametrisierten Test mithilfe eines Rahmenobjekts
Empfehlung von Jupyter Notebook, einer Codierungsumgebung für Datenwissenschaftler
Ein Memorandum, in dem ich über mein persönliches HEROKU & Python (Flask) gestolpert bin
Suche nach stabilen Strukturen von Metallnanoclustern mithilfe genetischer Algorithmen
Ich habe ein Demo-Programm zur linearen Transformation einer Matrix geschrieben
Probieren Sie die ähnliche Suche von Image Search mit Python SDK [Search] aus.
Ich habe versucht, Tensorboard zu verwenden, ein Visualisierungstool für maschinelles Lernen
(Für mich) Flask_4 (Dropdown-Menü, TXT-Daten anzeigen (mithilfe der Tabelle))
Scrapy-Redis wird zum Crawlen einer großen Anzahl von Domänen empfohlen
[Django] Eine Sammlung von Skripten, die für die Entwicklung geeignet sind
Ein Memo, dass ich eine Grundfunktion in Python mit Wiederholung geschrieben habe
Falsche Antwort bei Verwendung von numpy.prod () für das B-Problem von ABC169
Erstellen Sie mit Docker kostengünstig eine Flask-Entwicklungsumgebung
[Für Anfänger] Eine Wortzusammenfassung der gängigen Programmiersprachen (Version 2018)
Drehen Sie ein Array von Zeichenfolgen mit einer for-Anweisung (Python3).
Die Geschichte des Erstellens einer Datenbank mithilfe der Google Analytics-API
Aufbau einer Cortex-M-Entwicklungsumgebung für TOPPERS mit Raspeye
Versuchen Sie es mit [Tails], dem Favoriten eines Hackers (?), Durch USB-Booten.