Flask ist ein leichtgewichtiges Web-Framework für Python, das sich besonders gut für die Entwicklung von Webanwendungen und RESTful APIs eignet. Flask-RESTful ist eine Erweiterung des Flask-Frameworks für die einfache Implementierung von RESTful Webservices in Python.
Unterlagen zu Flask im Modul 323
Flask-RESTful erleichtert die Erstellung von REST-APIs durch die Bereitstellung von Tools und Strukturen, um Ressourcen, Routen und andere Funktionen eines RESTful Webservices zu organisieren. Flask-RESTful bietet eine einfache und effektive Möglichkeit, RESTful Webservices in Python zu entwickeln. Es ermöglicht die Strukturierung von Code und bietet Funktionen, um häufige Aufgaben bei der Erstellung von RESTful APIs zu erleichtern.
Flask-RESTful kann mit dem Python-Paketmanager pip installiert werden:
pip3 install flask-restful
Eine Flask-Applikation benötigt ein zentrales Python-Skript, welches die Defintion der Services enthält.
Dieses Skript wird häufig app.py
genannt.
Weitere Vorgaben zur Struktur des macht Flask nicht. Es empfiehlt sich jedoch ein etabliertes Architekturmuster für seine Applikation zu verwenden. Für meine Projekte verwende ich die MVC-Architektur und das DAO-Pattern.
Ein einfacher Flask-RESTful Webservice kann durch die Erstellung einer Flask-App und der Integration von Flask-RESTful erreicht werden.
from flask import Flask from flask_restful import Resource, Api def create_app(): app = Flask(__name__) CORS(app) api = Api(app) api.add_resource(HelloWorld, '/hello') return app if __name__ == '__main__': app = create_app() app.run(debug=True)
In der Funktion create_app
wird die Flask-Applikation erstellt.
Dieses Beispiel definiert eine Ressource (HelloWorld
) und den Pfad (/hello
) zu dieser Ressource.
Ressourcen werden durch Klassen repräsentiert, die von der Resource-Klasse von Flask-RESTful erben. Jede Ressource implementiert HTTP-Methoden (GET, POST, PUT, DELETE) als Methoden der Klasse (z.B., get, post, put, delete).
from flask import make_response from flask_restful import Resource class HelloWorld(Resource): def get(self): data = {'hello': 'world'} return make_response( data, 200 )
In diesem Beispiel würde eine GET-Anfrage an die URL /hello
die get-Methode der HelloWorld-Ressource aufrufen.
Diese Methode liefert ein JSON-Objekt und den HTTP-Status 200 als Antwort.
Um die Applikation auszuführen, musst du eine Runtime Configuration hinzufügen:
Die Einstellungen sollten automatisch korrekt sein. Du kannst das Fenster mit [OK] schliessen.
Erstellt mit Hilfe von ChatGPT