GUI über Website

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Svenator
User
Beiträge: 2
Registriert: Montag 4. September 2017, 07:45

Hallo ihr lieben,
ich lese bei euch schon eine ganze Weile immer wieder mal mit und habe jetzt selbst eine Frage.
Ich lasse für ein Forschungsprojekt aktuell ein Python Programm auf einem Raspberry laufen, welches einen Prozess steuert. Bis jetzt wird das Programm nur über SSH und Kommandozeile gesteuert (Eingabe weniger Startparametern zu beginn, dann läuft das Programm selbstständig). Die Einstellungen / Parameter sind in einer Config Datei (.cnf). Die Parameter in der .cnf können im laufendem Betrieb geändert werden. Mein Projektleiter möchte ein GUI zur Änderung der Parameter in der .cnf, welches sich von jedem beliebigen Rechner im Netzwerk über einen Browser aufrufen lässt. Leider habe ich noch nie etwas Ähnliches gemacht. Nach einiger Recherche habe ich überlegt das ganze über einen Web Server mit Django zu realisieren, bin mir aber unsicher ob das der richtige Weg zum Ziel ist.
Später sollen auch noch Daten des aktuellen Prozesses grafisch dargestellt werden, die über einen Mosquitto Sever (MQTT) verteilt werden.

Ich möchte hier lediglich hören ob das Ganze mit Django realisierbar ist, oder es einfachere Wege gibt an solche Aufgabenstellungen heranzugehen.
Ihr könntet mir damit evtl. viele Stunden Arbeit ersparen die ich investiere bevor ich realisiere das ich den falschen Weg eingeschlagen habe.

Liebe Grüße

Sven
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Django ist kein falscher Ansatz. Allerdings auch relativ schwergewichtig. Es gibt kleinere, leichtere Webframeworks wie Flask oder Bottle, die man auch einsetzen kann. Interessanter ist aber eh die Frage, ob du nicht gleich komplett auf Node.js umsteigst, denn eine Browser-GUI bedeutet heutzutage ja eh Unmengen an JavaScript, und die Verwendung von react.js, angular oder vue.js ist wahrscheinlich im Kontext von Node etwas leichter.
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

@__deets__: bei einem einfachen Formular, wo man ein paar Werte eintragen kann, ist Javascript nicht unbedingt nötig.

@Svenator: Flask oder Bottle haben den deutlich schnelleren Einstieg. Mit wenig Zeilen Code hat man schon einen fertigen WebServer. Django ist dann stark, wenn man die ganzen Features, die es mitbringt auch braucht und sich auch auf die Art und Weise, wie Formulare, Datenbank und Nutzerverwaltung in Django gelöst sind, einlassen kann.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Sirius3 hat geschrieben: Mittwoch 1. August 2018, 13:15 @__deets__: bei einem einfachen Formular, wo man ein paar Werte eintragen kann, ist Javascript nicht unbedingt nötig.
Ja, aber "Später sollen auch noch Daten des aktuellen Prozesses grafisch dargestellt werden" ist dann mit einem statischen HTML-Formular nicht mehr so weit her.
Svenator
User
Beiträge: 2
Registriert: Montag 4. September 2017, 07:45

Sry, hatte eigentlich schon einmal eine Antwort abgeschickt, die ist aber irgendwie verloren gegangen.
Ich danke euch für eure Denkanstöße. Mit Javaskript werde ich nicht Arbeiten, da ich damit noch nie gearbeitet habe und die Zeit, die mir für die Aufgabe gegeben ist eh sehr knapp bemessen ist.
Benutzeravatar
pixewakb
User
Beiträge: 1407
Registriert: Sonntag 24. April 2011, 19:43

Zeitdruck?

Schau Dir mal https://www.pythonanywhere.com an und dann das Framework bottle.py (https://bottlepy.org/docs/dev/). Ich habe mir bottle.py letzte Woche mal spaßeshalber angesehen und konnte ziemlich schnell was online stellen (Formular-Verarbeitung, Sessions-Nutzung, Hallo Welt-Programm usw.).

Ich habe früher mal php gemacht und vermisse bei bottle.py die Möglichkeit sessions zu verwalten, was allerdings mit dieser Erweiterung geht: https://github.com/dagnelies/canister
Die Erweiterung ist bei den offiziellen Erweiterungen aufgeführt, sollte also einigermaßen gut sein. Der Maintainer von canister steht mit git auf dem Kriegsfuß, d. h. du musst canister von github beziehen und dann installieren, weil dort die aktuelle Version liegt.

Das hier kann ich bei canister nicht einschätzen, weil ich mir bei php - damals - keine Gedanken darüber gemacht habe:
https://github.com/dagnelies/canister/b ... ty_note.md

Zu pythonanywhere.com: Ich habe mir dort einen free-Account "Beginner: $0/month" zugelegt, weil ich erst einmal nur mal testen möchte. Du kannst dort auch andere Apps hosten (z. B. flask) und könntest die App dann immer noch zu einem anderen Anbieter migrieren, wenn es produktiv gehen soll.
Benutzeravatar
pixewakb
User
Beiträge: 1407
Registriert: Sonntag 24. April 2011, 19:43

PS: Falls du etwas Zeit hast, schau dir mal Flask an, das ist m. E. mehr Industrie-Standard, jedenfalls wird es in einer meiner Einführungen (Buchform) am Rande mal erwähnt. Das ist bei mir das nächste Framework, dass ich mir ansehen werde.
Antworten