Seite 1 von 1

HTML Button belauschen

Verfasst: Donnerstag 6. August 2020, 15:12
von felix_3
Hallo,
ich habe auf meinem Linux Server einen Apache Web-Server zum Darstellen meiner Website für meine hausinternen Informationen.
Jetzt möchte ich noch eine weitere Website erstellen, womit ich diverse Aktionen ausführen möchte. Passend für mich ist, dass es Python verwaltet und bearbeitet.
Heißt also ich möchte einfache Web Buttons machen, womit ich eine Aktion in einem laufenden Python Skript aufrufe und das Skript Bescheid weiß, dass der Knopf gedrückt wurde.
Ich habe von Flask und Bottle gelesen, jedoch würde es heißen, dass der Apache Webserver überflüssig wäre. Gibt es eine einfachere Alternative den Buttons zu Lauschen?

Ich hoffe ihr könnt mein Problem verstehen und habt einen passenden Ansatz.

Viele Grüße
Felix

Re: HTML Button belauschen

Verfasst: Donnerstag 6. August 2020, 21:33
von einfachTobi
Apache hat auch ein WSGI Modul: https://de.m.wikipedia.org/wiki/Mod_wsgi.
Damit kannst du Python-Script und Website verbinden. Flask ist da eine gängige Lösung.

Re: HTML Button belauschen

Verfasst: Donnerstag 6. August 2020, 21:46
von sparrow
@felix_3: Grundsätzlich funktioniert das so nicht, wie du dir das vor stellst. Man kann nicht auf einen Buton lauschen, weil dieser gar nicht auf dem Server existiert. Er ist ja nur im Browser des Clients.
Und was heißt "laufendes Python Script"? Ist das ein Script, dass du ausführen möchtest, wenn ein Ereignis eintritt, oder läuft das wirklich die ganze Zeit - also ein Daemon?

Re: HTML Button belauschen

Verfasst: Donnerstag 6. August 2020, 22:26
von __deets__
Ich denke das ist einfach nur der Klassiker. Webseite + dauerhaft laufendes Skript, da etwas tun soll, und gleichzeitig auf Eingaben via Browser reagieren.

Apache alleine ist nur ein statischer Webserver. Wenn das alles wäre, nimm bottle. Oder flask. Oder Tornado. Ich vermute aber mal das du eigentlich PHP Seiten geschrieben hast? Die Integration damit ist komplizierter. Weshalb man ich zumindest alles mit Python als Webserver machen würde.

Re: HTML Button belauschen

Verfasst: Freitag 7. August 2020, 08:06
von noisefloor
Hallo,

wie schon gesagt läuft die Webseite clientseitig, d.h. der Server liefert die nur aus und bekommt dann von der Webseite nichts mehr mit.

Bei einem Button hast du prinzipiell zwei Möglichkeiten:

* Der Button ist Teil eines Formulars und beim Druck auf den Button wird ein GET oder POST Request ausgelöst, der Server macht was und liefert die / eine Seite neu aus. (potentieller) Nachteil: die Seite wird jedes mal komplett neu geladen.
* Du bindest ein Event an den Button. Beim Eintreten des "Buttons wird gedrückt Events" wird ein JavaScript Callback ausgelöst, der im Hintergrund z.B. für die JavaScript fetch-API einen Request an den Server schickt, der daraufhin was macht.

Was der Server macht bzw. den wie Knopfdruck serverseitig verarbeitet wird hängt davon ab, was dein uns unbekanntes Python Skript macht.

Ggf. wären auch Websockets eine weitere Möglichkeit.

Gruß, noisefloor