Applicationserveraufbau Python/Flask?
Moin,
ich möchte mir einen kleinen Server auf meinem PI4 aufbauen, auf dem eine Anwendung läuft, die in Intervallen neue Daten aus dem Internet holt und den Clients zur Verfügung stellt. Die Clients sollen per Request an den Server eine Antwort z. B. in Form von JSON bekommen. Mein Lösungsweg wäre hier Flask auf einem Nginx.
Meine Fragen:
- Ist Flask + Nginx hier eine nachvollziehbare Wahl, oder ist davon abzuraten?
- Wie stelle ich das technisch an? Also: Baue ich das Ganze dann wie einen Webserver auf, mit verschiedenen Routen /prices, /Names, etc. und lasse in der "main" des Servers die Intervallabfrage laufen? Wenn nein, wie mache ich es dann?
Da ich nicht so wirklich weiß, wo ich anfangen soll und das Internet viel zu voll ist, wäre ich für eure Tipps und Vorschläge dankbar.
Danke im Voraus.
1 Antwort
Ist Flask + Nginx hier eine nachvollziehbare Wahl, oder ist davon abzuraten?
Du suchst nach leichtgewichtigen Lösungen, daher wären Flask, Nginx (und als Applikationsserver noch Gunicorn) passend.
Problematisch wäre der Grundaufbau (und da zähle ich deine Hardwarekomponente mit dazu) nur, wenn du sehr hohe Anforderungen an deine Webapplikation stellen solltest. Wie viele Requests dein Webserver in der Stunde aushält, kannst du mit Belastungstests prüfen.
Wie stelle ich das technisch an? (...) Baue ich das Ganze dann wie einen Webserver auf, mit verschiedenen Routen (...)?
Erst richtest du deinen Webserver ein. Ein anleitender Blogartikel lässt sich schnell finden: Beginners Guide to install a Flask Python webserver on Raspberry Pi.
Darauf baust du deine API auf (also ja, du brauchst Routen). Du kannst dafür ja die Flask-RESTful-Erweiterung mit installieren.
(...) und lasse in der "main" des Servers die Intervallabfrage laufen?
Die Daten könntest du in einer SQLite-Datenbank sammeln. Das Skript, welches die Datenbank befüllt, würde ich über einen Scheduler wie Crontab separat laufen lassen (Anleitung).