Flask 2 request POST nützen
- __blackjack__
- User
- Beiträge: 13101
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Hypec: Ja, das ``if`` wird für jede `row` ausgeführt, aber die Bedingung ist halt total unsinnig formuliert und da Du nicht verstanden hast was die macht ist das halt nur Zufall das es so funktioniert wie Du das wolltest. Es wäre schon sinnvoll das Du verstehst was dieser Ausdruck tatsächlich macht und dann den unsinnigen Teil entfernst.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Eine row sieht ja so aus :
ID, mess_id, werttyp_id, timestamp, Wert
34, 1, 4, 2019-06-22.14:15(genaue Formatierenung weiß ich gerade nicht), 24,6
plot_data['werttypone'] = 4
Also die Abfrage sieht dann so aus:
If 4 = 4 in row:
Also kann sein das ich echt auf dem Schlauch stehe aber ich sehe nicht was falsch ist.
ID, mess_id, werttyp_id, timestamp, Wert
34, 1, 4, 2019-06-22.14:15(genaue Formatierenung weiß ich gerade nicht), 24,6
plot_data['werttypone'] = 4
Also die Abfrage sieht dann so aus:
If 4 = 4 in row:
Also kann sein das ich echt auf dem Schlauch stehe aber ich sehe nicht was falsch ist.
- __blackjack__
- User
- Beiträge: 13101
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Hypec: Mir fällt gerade auf, dass meine Beschreibung falsch war. Sinnvoller wird die Bedingung dadurch aber nicht und richtiger auch nicht. Das ist ja eine verkettete Bedingung, also ``4 == row[2] in row`` ist das gleiche wie ``4 == row[2] and row[2] in row``. Der Teil nach dem ``and`` ist IMMER wahr, denn natürlich ist das 3. Element aus `row` in `row` enthalten. Bleibt ``4 == row[2]`` als sinnvoller Teil der Bedingung übrig.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
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?