Flask 2 request POST nützen
Also ich habe jetzt noch ein bisschen an dem Code rumprobiert und bin jetzt soweit das Jeder Button und die Stationenabfrage Funktioniert. Jedoch habe ich das Problem das ich jeden Button nun 2 mal drücken muss damit die Grafik wechselt. Ich denke das liegt daran da der alte Wert ja noch in last_selected gespeichert ist.
Wie kann ich jetzt dafür sorgen das auf last_selected nur dann zurückgeriffen wird wenn der andere Wert geändert wird? Also last_selected last soll nur benutzt werden wenn ich die mess_id ändere.
Wie kann ich jetzt dafür sorgen das auf last_selected nur dann zurückgeriffen wird wenn der andere Wert geändert wird? Also last_selected last soll nur benutzt werden wenn ich die mess_id ändere.
Code: Alles auswählen
@app.route('/dashboard/<id>', methods=['GET', 'POST'])
def dashboard(id):
mess_id = request.form.get('mess_id', 1)
last = request.form.get('last,', request.form.get('last_selected', 'tag'))
plots_date = []
if last == 'tag':
ask_length = 96
elif last == 'woche':
ask_length = 672
elif last == 'monat':
ask_length = 2880
else:
ask_length = 96
if 'date' in request.form:
ask_length = 96
start_date = request.form.get('start_date', "2018-01-01_00:00")
end_date = request.form.get('end_date', "2019-01-01_00:00")
plots_date = [
make_plot(mess_id, quantity, ask_length, start_date, end_date)
for quantity in PLOTS
]
plots = [
make_plot(mess_id, quantity, ask_length, None, None)
for quantity in PLOTS
]
return render_template('dashboard.html', form=request.form, plots=plots, plots_date=plots_date, mess_ids=['1', '2', '3'])
Code: Alles auswählen
<form method="post" >
<div class="topnav">
<input type="hidden" name="last_selected" value="{{form.last}}">
<button class="button" type="submit" value="tag" id="tag" name="last">Letzter Tag</button>
<button class="button" type="submit" value="woche" id="woche" name="last">Letzte Woche</button>
<button class="button" type="submit" value="monat" id="monat" name="last">Letzter Monat</button>
<div class="topnav-right">
<select name="mess_id" onchange='this.form.submit()'>
{%for mess_id in mess_ids%}
<option value="{{mess_id}}" {%if mess_id == form.mess_id%}selected{%endif%}>Station {{mess_id}}</option>
{%endfor%}
</select>
</div>
</div>
</form>
<link rel="stylesheet" type="text/css" href="{{url_for('static', filename='css/bokeh.css') }}">
<script type="text/javascript" src="{{url_for('static', filename='js/bokeh.js') }}"></script>
{% for plot in plots %}
{% for part in plot %}
{{part | safe}}
{% endfor %}
{% endfor %}
<form method="post">
<div class="auswahl">
<p>Zeitraum von<input class="ausw-button" type = "date" name = "start_date" />bis
<input class="ausw-button" type = "date" name = "end_date" />
<input class="ausw-button" type="submit" value="submit" name="date" />
</div>
</form>
{% for plot in plots_date %}
{% for part in plot %}
{{part | safe}}
{% endfor %}
{% endfor %}
Falls du diese Zeile meinst was ist dann richtig ich habe es mit get probiert dann geht es aber nicht mehr.
Ist das mit dem Komma eine Berkung das mir nur ein Komma fehlt oder zu viel ist um mein Problem zu beheben?
Code: Alles auswählen
<form method="post" >
Habe jetzt in der Zeile das Komma entfernt und es funktioniert alles (immernoch mit der POST methode).
Das einzige Problem was ich jetzt noch habe ist das die Graphen immer zufällig geordnet sind. Hat da jemand eine Idee wie ich die in eine Festgelegte Reihenfolge bringen kann?
Das einzige Problem was ich jetzt noch habe ist das die Graphen immer zufällig geordnet sind. Hat da jemand eine Idee wie ich die in eine Festgelegte Reihenfolge bringen kann?