Hallo Ein Python Script übergibt einige Variablen an den Flask Server. Auf der index.html werden diese dann wie folgt angezeigt: <h2>Spannung 1: {{ tens_a }}V</h2> <h2>Spannung 2: {{ tens_b }}V</h2> Dies funktioniert problemlos. ich habe auf der index.html nun einen Frame eingebaut: <iframe src="frame.html"></iframe> und möchte die beiden Daten in diesem Frame anzeigen lassen. Wenn ich nun in der frame.html die beiden obengennaten Zeilen einbaue, werden keine Werte angezeigt, da offensichtlich zwischen beiden html keine Variablen übertragen werden. WIe kann ich dies bewerkstelligen?
Voraussetzung für Verweise zu einem eingebetteten Frame ist, dass der eingebettete Frame mit name einen Namen erhalten hat.
ergaenzend noch der hinweis, dass in der selfhtml doku klassisch ueber a und href eingebunden wird.
Rolli schrieb: > <h2>Spannung 1: {{ tens_a }}V</h2> > <h2>Spannung 2: {{ tens_b }}V</h2> das ist auch kein (reines) html sondern jinja2 oder twig (die sehen praktisch identisch aus) oder sonst etwas in der Richtung; mit Hilfe dieser Rendering Engine wird das HTML generiert und ausgeliefert. Wenn du die zwei Zeilen "einfach so" in eine HTML-Datei schreibst, dann wird die nicht durch die Rendering Engine verarbeitet, d.h. der "interessante" Teil wird einfach nur als Text interpretiert. ich verstehe zwar nicht was du genau machen möchtest - wenn du die zwei Zeilen im Iframe (pfui teufel) angezeigt haben möchtest, dann musst du dafür sorgen, dass der Inhalt des Frames (igitt) ebenfalls gerendert wird und nicht als "nacktes" HTML ausgegeben wird. Bitte frag mich nicht wie das geht - habe mit flask noch nie gearbeitet. EDITH meint: warum willst du einen iframe verwenden? bzw. was hast du vor? da gibt es sicher bessere Alternativen als einen iframe (iiiihhhh).
:
Bearbeitet durch User
Daniel F. schrieb: > ich verstehe zwar nicht was du genau machen möchtest - wenn du die zwei > Zeilen im Iframe (pfui teufel) Das Iframe dient nur, um die Übergabe der Variablen zu testen, das Ergebnis sofort einsehen zu können und nicht zwischen verschiedenen Seiten hin und herklicken zu müssen Also so wie ich das nun verstehe, erzeugt Flask die Webseite und bettet mittels Jinja2 die Variablen ein. Die Frage ist nun, ob und wie ich die Variablen an eine andere htlm übergeben kann, die nicht von Flask gerendert wird, bzw. wie ich die Variablen dort verarbeite.
Rolli schrieb: > Also so wie ich das nun verstehe, erzeugt Flask die Webseite und bettet > mittels Jinja2 die Variablen ein. Die Frage ist nun, ob und wie ich die > Variablen an eine andere htlm übergeben kann, die nicht von Flask > gerendert wird, bzw. wie ich die Variablen dort verarbeite. Mit Javascript kann du den Inhalt des DOM-Baumes lesen und verändern. Kannst also beliebige Inhalte auslesen und weiterverarbeiten. merciless
Rolli schrieb: > <iframe src="frame.html"></iframe> > > und möchte die beiden Daten in diesem Frame anzeigen lassen. Wenn ich > nun in der frame.html die beiden obengennaten Zeilen einbaue, werden > keine Werte angezeigt, da offensichtlich zwischen beiden html keine > Variablen übertragen werden. Warum sollte das geschehen? je nach Konfiguration deiner Flask app weiss frame.html nichts von den template Variablen oder wird sogar als static Kontent ausgeliefert. als workaround könntest du in dem index.html template ein url_for('flaskframe') einbauen und in dem flask endpoint flaskframe den iframe mit einen geeigneten template rendern.
Wie schon gesagt macht die Ersetzung der Server, bevor die Seite verschickt wird. Damit muss immer die ganze Seite neu geladen werden, um die Werte zu aktualisieren (oder der Frame). Heute mach man das aber ohne Frames und mit JavaScript. Du hast deine Hauptseite, die statisch ist und auch so ausgeliefert wird. Dein Server hat dann eine Abfrage bei der man die Variablen im JSON Format abfragen kann. Ein JavaScript fragt diese dann regelmäßig ab und passt die Seite an. Dafür gibt es bestimmt auch Frameworks die das schon können, ich hab spontan aber keinen Überblick, welches dafür am besten ist.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.