Seite 1 von 1

Datenaustausch zwischen Flask und Python-Anwendung

Verfasst: Montag 29. August 2016, 07:10
von numumba
Hallo,

ich beschäftige mich erst seit kurzer Zeit und privat mit Python.
Seit diesem Wochenende habe ich ein Problem, für das ich noch keinen Lösungsansatz im Netz gefunden habe. Warscheinlich fehlt mir aber auch nur der richtige Suchbegriff.

Also, ich habe ein Python-Anwendung die in der Konsole läuft. Diese Anwendung realisiert das zeitgesteuerte ein bzw. ausschalten eines Relais-Modul via. SPI. Dieser Anwendung möchte ich gerne um eine WEB-Oberfläche erweitern. Als Framework habe ich mir Flask ausgeguckt (schein sehr einfach zu sein). Jetzt stehe ich vor folgendem Problem, Flask reagier (warscheinlich) nur auf Anfragen und führt somit auch nur dann den geschriebenen Code aus. Das Programm muss aber kontinuierlich laufen, da sonst die Zeitabhängigkeit verloren geht.

Meine Fragen:
1. Wie kann ich Daten zwischen dem Python-Skript der Anwendung und dem Python-Flask-Skript austauschen?
oder
2. Ist es möglich, die von mir geschriebenen Flask-Anweisungen als Funktionen im Code des Python-Skriptes auszuführen?
oder
3. Gibt es eine anderen Weg mein Anliegen umzusetzen?

Danke im Voraus.
Numumba

Re: Datenaustausch zwischen Flask und Python-Anwendung

Verfasst: Montag 29. August 2016, 08:22
von Sirius3
@numumba: zu 1) es gibt viele Möglichkeiten der Interprozess-Kommunikation. Heutzutage nimmt man meist TCP-Sockets, wenn nicht gar gleich HTTP mit einem REST-Interface. Womit wir gleich zu 2) oder 3) kommen. Du kannst neben dem Flask-Server auch noch andere Threads parallel laufen lassen, die irgendetwas "kontinuierlich" machen, mit den ganzen Schwierigkeiten, auf die man immer achten muß, wenn nebenläufigen Programme schreibt. Aber um das Thema Nebenläufigkeit wirst Du nicht drumrum kommen, wenn Du mehrere Dinge gleichzeitig erledigen willst.

Re: Datenaustausch zwischen Flask und Python-Anwendung

Verfasst: Montag 29. August 2016, 20:50
von noisefloor
Hallo,
Das Programm muss aber kontinuierlich laufen, da sonst die Zeitabhängigkeit verloren geht.
Schaltet das Programm wirklich nur ein Relais? Dann ist ein dauerhaft laufendes Programm normalerweise Prozesszeitverschwendung. Das kannst du auch über eine systemd Timer Unit oder eine cron-Job realisieren (sofern der Relais nicht im sekundentakt oder so geschaltet wird).

Was soll den die Weboberfläche können? Nur den Zustand des Relais anzeigen oder es auch schalten?

Gruß, noisefloor