Flask/Bootstrap - Browser macht kein Update
Verfasst: Freitag 10. Juli 2020, 09:44
Nachdem ich schon die Suche befragt habe (aber wahrscheinlich mit den falschen Suchbegriffen) möchte ich hier meine Frage loswerden:
Ich möchte auf meinem Raspi mit Python 3, Flask und Bootstrap eine Webseite aufbauen. Dabei möchte ich gerne mit Buttons verschiedene Graphen interaktiv anzeigen lassen. Ich habe 3 Buttons nebeneinander, einen für Tag, einen für Woche und einen für den Monat. Das erzeugen des jeweiligen Graphen (PNG-Datei) klappt hervorragend, nur leider wird immer nur das erste Bild angezeigt. Wenn man ein zweites sehen will, wird es erzeugt, aber nicht angezeigt. Wenn ich im Browser dann [STRG]+F5 drücke lädt der Browser das korrekte Bild.
Kann ich mit irgendeinem Befehl in Python in der Übergabe an Flask den Cache im Browser löschen?
Hier der Seitencode:
Und hier der zugehörige Pythoncode:
Über Hilfe würde ich mich sehr freuen. Wahrscheinlich habe ich irgendwo nur einen Denkfehler drin.
Ich möchte auf meinem Raspi mit Python 3, Flask und Bootstrap eine Webseite aufbauen. Dabei möchte ich gerne mit Buttons verschiedene Graphen interaktiv anzeigen lassen. Ich habe 3 Buttons nebeneinander, einen für Tag, einen für Woche und einen für den Monat. Das erzeugen des jeweiligen Graphen (PNG-Datei) klappt hervorragend, nur leider wird immer nur das erste Bild angezeigt. Wenn man ein zweites sehen will, wird es erzeugt, aber nicht angezeigt. Wenn ich im Browser dann [STRG]+F5 drücke lädt der Browser das korrekte Bild.
Kann ich mit irgendeinem Befehl in Python in der Übergabe an Flask den Cache im Browser löschen?
Hier der Seitencode:
Code: Alles auswählen
<div class="container">
<h4>Temperatur</h4>
<div class="container">
<form method="post">
<input class="btn btn-primary" type="submit" name="Tag" value="Temp Tag">
<input class="btn btn-primary" type="submit" name="Woche" value="Temp Woche">
<input class="btn btn-primary" type="submit" name="Monat" value="Temp Monat">
</form>
</div>
{% if bildt == 1 %}
<div class="container">
<p></p>
<img src="../static/img/Temperatur.png" alt="Temperaturverlauf">
</div>
{% endif %}
</div>
Code: Alles auswählen
if request.method == 'POST':
if request.form.get('Tag') == 'Temp Tag':
ret = rrdtool.graph('./static/img/Temperatur.png', '-s', 'now - 1 day', '-e', 'now', '--vertical-label', 'in °C', '--title', 'Temperatur Tag', '-l', '16.0', '-u', '22.0', 'DEF:taggraph=/home/pi/Sensor/TemperaturAufzeichnen.rrd:temp:AVERAGE', 'VDEF:tagmax=taggraph,MAXIMUM', 'VDEF:tagmin=taggraph,MINIMUM', 'LINE1:taggraph#FF0000:Temperatur', 'GPRINT:tagmax:"Max\: %2.1lf°C"', 'GPRINT:tagmin:"Min\: %2.1lf°C"')
bildt = 1
return render_template('temperatur.html', messung=datum, feuchtigkeit=f, temperatur=t, bildt=bildt, bildf=bildf)
elif request.form.get('Woche') == 'Temp Woche':
ret = rrdtool.graph('./static/img/Temperatur.png', '-s', 'now - 1 week', '-e', 'now', '--vertical-label', 'in °C', '--title', 'Temperatur Woche', '-l', '16.0', '-u', '22.0', 'DEF:wochegraph=/home/pi/Sensor/TemperaturAufzeichnen.rrd:temp:AVERAGE', 'LINE1:wochegraph#FF0000:Temperatur')
bildt = 1
return render_template('temperatur.html', messung=datum, feuchtigkeit=f, temperatur=t, bildt=bildt, bildf=bildf)
elif request.form.get('Monat') == 'Temp Monat':
ret = rrdtool.graph('./static/img/Temperatur.png', '-s', 'now - 1 month', '-e', 'now', '--vertical-label', 'in °C', '--title', 'Temperatur Monat', '-l', '16.0', '-u', '22.0', 'DEF:monatgraph=/home/pi/Sensor/TemperaturAufzeichnen.rrd:temp:AVERAGE', 'LINE1:monatgraph#FF0000:Temperatur')
bildt = 1
return render_template('temperatur.html', messung=datum, feuchtigkeit=f, temperatur=t, bildt=bildt, bildf=bildf)