Forum: PC-Programmierung html variablen übergeben


von Rolli (Gast)


Lesenswert?

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?

von Matthias S. (Gast)


Lesenswert?

Voraussetzung für Verweise zu einem eingebetteten Frame ist, dass der 
eingebettete Frame mit name einen Namen erhalten hat.

von Matthias S. (Gast)


Lesenswert?

ergaenzend noch der hinweis, dass in der selfhtml doku klassisch ueber a 
und href eingebunden wird.

von Daniel F. (df311)


Lesenswert?

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
von Rolli (Gast)


Lesenswert?

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.

von Dirk K. (merciless)


Lesenswert?

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

von imonbln (Gast)


Lesenswert?

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.

von M.K. B. (mkbit)


Lesenswert?

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
Noch kein Account? Hier anmelden.