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.
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.
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.
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.
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.
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.
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.
PyCon JP 2012 - praktische Sitzung / Implementierung und Programmierung von Webanwendungen von Flask
Recommended Posts