mikrocontroller.net

Forum: PC-Programmierung html variablen übergeben


Autor: Rolli (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Matthias S. (Gast)
Datum:

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

Autor: Matthias S. (Gast)
Datum:

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

Autor: Daniel F. (df311)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Rolli (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dirk K. (merciless)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: imonbln (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: M.K. B. (mkbit)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.