Hallo
ich bräuchte einige Tipps wie ich die Vorstellung lösen könnte. Ich habe ein Python-Programm welches Messinstrumente steuert. Zuerst wird erkannt auf welchem USB welches Gerät ist und eine CSV-Datei erstellt und danach eine while Loop welches Relais schaltet und die Daten vom jeweiligen Messinstrument bearbeitet.
Jetzt wollte ich eine Grafik hinzufügen wo Daten gesendet werden vor der while Loop. Dabei dachte ich dass ich das mit einem Browser mache, wo ich ein HTML-Formular erstelle mit Text und Eingabefeldern und beim betätigen von einem Sende-Button die Daten an Python geschickt werden. Da gibt es ja das Webbrowser-Modul.
Jetzt wollte ich fragen wie ich am Anfang vor der while-Loop das Python-Programm blockieren kann bis ich den Sende-Button vom Browser drücke. Beim betätigen vom Sende-Button kann ich ja alle Eingabefelder mit Post, vom Browser an Python schicken. Mit den jeweiligen Variablen soll Python weiter ausgeführt werden.
Ein weiteres Problem ist wenn ich jetzt wieder in der while-Loop von Python den Sende-Button beim Browser drücke. Wie kann ich die Variablen aktualisieren.
Wenn ich dieses Problem gelöst habe, würde ich gerne aus dem Internet auf den Browser zugreifen welcher dann die Daten vom Formular an Python schickt. Habt ihr da Tipps wie man das lösen könnte. Da gehört ja ein Server programmiert?
Ich bräuchte bitte Tipps wo ich mich einlesen könnte um das Problem zu lösen.
Danke!
LG
Python blockieren um Daten vom Browser zu empfangen
Da läuft einiges verquer. Ich versuche das mal zu entwirren:
Das Webbrowser-Modul von Python sorgt nur dafür, dass sich ein Webbrowser mit einer bestimmten URL öffnet. Das war es. Es gibt keine Möglichkeit vom Webbrowser aus mit dem Programm zu kommunizieren.
Wenn du "in einem Webbrowser etwas klicken willst", dann musst du dich mit Webentwicklung beschäftigen. Dann musst du aber auch eine Webanwendung schreiben. Für Python gibt es da Rahmenwerke wie Django oder Flask.
Und du möchtest "aus dem Internet auf den Browser" zugreifen? Was soll das denn sein?
Wenn es dir nur darum geht, etws grafisch darzusellen, würde ich mir einfach eines der etablierten GUI-Rahmenwerke wie tkinter oder Qt anschauen.
Das Webbrowser-Modul von Python sorgt nur dafür, dass sich ein Webbrowser mit einer bestimmten URL öffnet. Das war es. Es gibt keine Möglichkeit vom Webbrowser aus mit dem Programm zu kommunizieren.
Wenn du "in einem Webbrowser etwas klicken willst", dann musst du dich mit Webentwicklung beschäftigen. Dann musst du aber auch eine Webanwendung schreiben. Für Python gibt es da Rahmenwerke wie Django oder Flask.
Und du möchtest "aus dem Internet auf den Browser" zugreifen? Was soll das denn sein?
Wenn es dir nur darum geht, etws grafisch darzusellen, würde ich mir einfach eines der etablierten GUI-Rahmenwerke wie tkinter oder Qt anschauen.
Danke Sparrow!
Ich dachte wenn ich ein HTML-Formular wie den unteren Zeilen, unter gui.html speicher und mit dem modul Webbrowser öffne, kann ich es ausführen und mit POST bzw. GET die Daten in Python empfangen.
Zuerst dachte ich dass ich gui.html wenn es im selben Pfad wie die Python-Dateien sind, öffnen kann und von einem PC miteinander kommunizieren. Danach meinte ich dass ich gerne aus dem Internet bzw. aus der Ferne auf das GUI zugreifen möchte damit Python die Daten bzw. Eingaben ändert.
Am Anfang geht es mir darum etwas grafisch Darzustellen. Danach möchte ich aber aus dem Internet bzw. aus der Ferne steuern und die Daten bzw. Eingaben senden.
tkinter hat ja auch Probleme. Das Python-Programm mit der while-Loop ist ja das Hauptprogramm. Danach wollte ich nur eine Grafik zufügen mit import grafik und grafik.py. Jedoch hat das auch nicht funktioniert, da muss ja tkinter das Hauptprogramm sein. Muss ich das ganze Programm neu programmieren oder habt ihr Tipps wie ich das tkinter zufügen könnte.
LG
Ich dachte wenn ich ein HTML-Formular wie den unteren Zeilen, unter gui.html speicher und mit dem modul Webbrowser öffne, kann ich es ausführen und mit POST bzw. GET die Daten in Python empfangen.
Code: Alles auswählen
<form action="senden.html" id="person">
<label class="h2" form="person">Namenseingabe</label>
<label for="vorname">Vorname</label>
<input type="text" name="vorname" id="vorname" maxlength="30">
<label for="zuname">Zuname</label>
<input type="text" name="zuname" id="zuname" maxlength="40">
<button type="submit">Eingaben absenden</button>
</form>
Am Anfang geht es mir darum etwas grafisch Darzustellen. Danach möchte ich aber aus dem Internet bzw. aus der Ferne steuern und die Daten bzw. Eingaben senden.
tkinter hat ja auch Probleme. Das Python-Programm mit der while-Loop ist ja das Hauptprogramm. Danach wollte ich nur eine Grafik zufügen mit import grafik und grafik.py. Jedoch hat das auch nicht funktioniert, da muss ja tkinter das Hauptprogramm sein. Muss ich das ganze Programm neu programmieren oder habt ihr Tipps wie ich das tkinter zufügen könnte.
LG
Also willst Du, wie sparrow schon geschrieben hat, einen Webserver programmieren.
Nebenläufige Progrmmierung, egal ob per TKinter oder Webserver, ist nicht ganz trivial.
Dazu gibt es hier schon hunderte Beiträge im Forum.
Wenn Du konkrete Fragen hast, brauchen wir den Code.
Nebenläufige Progrmmierung, egal ob per TKinter oder Webserver, ist nicht ganz trivial.
Dazu gibt es hier schon hunderte Beiträge im Forum.
Wenn Du konkrete Fragen hast, brauchen wir den Code.
Danke für die Antworten.
Mit Threading kann ich die while(True)-Schleife vom hauptprogramm.py und grafik.py abwechseln. Und mit Queue kann ich für die Kommunikation bei Tkinter Daten von grafik.py nach hauptprogramm.py schicken. Ist es richtig so?
Wenn ich das Programm starte, wie kann ich das hauptprogramm.py blockieren bis es die Daten von grafik.py bekommt.
Mit Threading kann ich die while(True)-Schleife vom hauptprogramm.py und grafik.py abwechseln. Und mit Queue kann ich für die Kommunikation bei Tkinter Daten von grafik.py nach hauptprogramm.py schicken. Ist es richtig so?
Wenn ich das Programm starte, wie kann ich das hauptprogramm.py blockieren bis es die Daten von grafik.py bekommt.
Du hast noch ein falsches Verständnis, wie eine GUI funktioniert. Du kannst keine Daten von einer Python-Datei zu einer anderen schicken, sondern nur Daten von einem Thread zu einer Event-Funktion innerhalb Deiner GUI. Blockieren sollte so eine Event-Funktion nie, denn dann friert die GUI ein und das Betriebssystem beschwert sich.