Web-GUI mit Kopplung zu Python-Programmen auf der Festplatte

PatrickS1990

Cadet 4th Year
Registriert
Apr. 2018
Beiträge
68
Hallo,
ich habe folgende Idee:
Ich möchte eine Webseite erstellen mit Eingabe- und Ausgabefenstern.
Dahinter soll Python laufen, um Berechnungen durchzuführen oder Instanzen von Klassen zu erstellen usw.
Python soll für Berechnungen ein externes Programm nutzen, welches auf der Festplatte gesichert ist.

Bisher funktioniert das alles auf dem PC ganz gut, ich möchte das jetzt lediglich auf eine Webseite "portieren", sodass meine jetzige Desktop-GUI dann in der Webseite zu sehen ist.

Nun kenne ich mich da bisher absolut nicht aus und wollte einmal euch Profis fragen, wie man da ran gehen könnte.
Würde mich sehr darüber freuen.
Aktuell läuft die Software unter Windows, Linux wäre aber auch denkbar.
 
den ganzen desktop im browser sehen? -> https://guacamole.apache.org/ (bitte nicht direkt übers internet)
einfach eine webseite mittles python bereitstellen, die dann was auf dem pc ausführen kann? flask/django (auch hier nur übers internet anbieten, wenn man weiss was man tut :))
 
Kannst du mit dem Flask oder Django Framework bauen.
Hier kannst du Websites fürs Frontent bereitstellen und im Backend läuft Python
 
Soweit ich das nun verstanden habe, kann ich ein Python-Programm innerhalb der Webseite laufen lassen für Berechnungen etc.
Was aber nicht geht, ist auf eine exe zugreifen..oder?
Folgendes habe ich vor:
Python steuert auf meinem PC ein Simulationsprogramm, d.h. es werden dem Programm Daten übergeben, das Programm simuliert und speichert die Ergebnisse ab. Dann nimmt Python die Ergebnisse und stellt sie grafisch dar.
Diese Eingabedaten sowie die Ergebnisse sollen von der Webseite kommen, bzw. auf dieser angezeigt werden.

Hat jemand da eine Idee?
 
hast du denn die beiden sachen mal angeschaut? mit beiden kann man eine webanwendung in python erstellen, die per http daten annehmen, irgendwas damit machen und was zurückgeben können. das "irgendwas damit machen" kann python-code sein oder ein aufruf eines externen programms, so wie du das wolltest.

Python:
import flask
import argparse
import subprocess


class Server(object):

    def __init__(self, args):
        self._port = args.port

    def run(self):
        app = flask.Flask(__name__)

        @app.route('/echo/<text>', methods=['GET'])
        def echo(text="default"):
            return subprocess.run(
                ["echo", text],
                capture_output=True
            ).stdout

        @app.route('/square/<number>', methods=['GET'])
        def square(number):
            return str(float(number) ** 2)

        app.run(host="0.0.0.0", port=self._port)


if __name__ == '__main__':
    parser = argparse.ArgumentParser()

    parser.add_argument(
        "-p",
        "--port",
        type=int,
        default=8080
    )

    Server(
        parser.parse_args()
    ).run()

starten und im browser http://127.0.0.1:8080/echo/foo oder http://127.0.0.1:8080/square/3 aufrufen.
 
Ja, habe ich. Ich habe auch einige Tutorials durchgearbeitet und auch ein Programm auf pythonanywhere laufen. Aber das mit dem Aufruf einer exe habe ich bisher nicht herausfinden können.

Danke für dein Beispiel. Das mit .../echo/foo funktioniert nicht bei mir. Hast du eine Idee?

Edit:
Hab jetzt anderweitig einen exe-Aufruf dank deines Beispiels hinbekommen.
Nun kommt vermutlich der Endgegner. Die exe wird über das Python Paket 'pyfemm' angesteuert.
Ich muss also Befehle, wie beispielsweise femm.openfemm() aufrufen nach Tastendruck auf der Webseite.
Der Tastendruck ist kein Problem, jedoch die Ausführung des Befehls.
Da kommt immer ein Fehler 'CoInitialize wurde nicht aufgerufen'
 
Zuletzt bearbeitet:
Zurück
Oben