Flask, matplotlib, HTML Form, als png zurück geben
Verfasst: Dienstag 20. März 2018, 21:04
Hallo kann mir jemand Sagen mit welcher Methode ich die werte der FORM auf abgreifen kann um auf einer Seite den Plot in ein bild zu Posten ??? ohne der Auswahl eines wertes funktioniert es mit <img src="{{url_for('build_plot')}}" alt="Loading plot0" />
Daten_fürden_Plot sind als "Form Data" vorhanden aber ich kann die nicht einlesen? Man kann sie im Post Headers auslesen im Firefox und Chrome?
HTML seite mit einer form zum aus wählen der Daten
[codebox=html5 file=Unbenannt.html]
<form action="{{url_for('values')}}" method="POST" id="select">
<select name="Daten_fürden_Plot" size="14">
<option value="Wirkenergie_kWh">Wirkengie</option>
<option value="Strommittelwert_L1">L1</option>
<option value="Strommittelwert_L2">L2</option>
<option value="Strommittelwert_L3">L3</option>
<option value="Schaltkreis_1_Wirkenergie_kWh">Wirkenergie 1</option>
<option value="Schaltkreis_1_Strommittelwert_A">Strommittelwert 1</option>
<option value="Schaltkreis_2_Wirkenergie_kWh">Wirkenergie 2</option>
<option value="Schaltkreis_2_Strommittelwert_A">Strommittelwert 2</option>
<option value="Schaltkreis_3_Wirkenergie_kWh">Wirkenergie 3</option>
<option value="Schaltkreis_3_Strommittelwert_A">Strommittelwert 3</option>
<option value="Schaltkreis_4_Wirkenergie_kWh">Wirkenergie 4</option>
<option value="Schaltkreis_4_Strommittelwert_A">Strommittelwert 4</option>
</select>
<input type="submit">
[/code]
html seite mit der erstellung des Bildes
[codebox=html5 file=Unbenannt.html]
<img src="{{url_for('build_plot')}}" alt="Loading plot0" />
[/code]
Zeile 4 funktioniert nicht
Daten_fürden_Plot sind als "Form Data" vorhanden aber ich kann die nicht einlesen? Man kann sie im Post Headers auslesen im Firefox und Chrome?
HTML seite mit einer form zum aus wählen der Daten
[codebox=html5 file=Unbenannt.html]
<form action="{{url_for('values')}}" method="POST" id="select">
<select name="Daten_fürden_Plot" size="14">
<option value="Wirkenergie_kWh">Wirkengie</option>
<option value="Strommittelwert_L1">L1</option>
<option value="Strommittelwert_L2">L2</option>
<option value="Strommittelwert_L3">L3</option>
<option value="Schaltkreis_1_Wirkenergie_kWh">Wirkenergie 1</option>
<option value="Schaltkreis_1_Strommittelwert_A">Strommittelwert 1</option>
<option value="Schaltkreis_2_Wirkenergie_kWh">Wirkenergie 2</option>
<option value="Schaltkreis_2_Strommittelwert_A">Strommittelwert 2</option>
<option value="Schaltkreis_3_Wirkenergie_kWh">Wirkenergie 3</option>
<option value="Schaltkreis_3_Strommittelwert_A">Strommittelwert 3</option>
<option value="Schaltkreis_4_Wirkenergie_kWh">Wirkenergie 4</option>
<option value="Schaltkreis_4_Strommittelwert_A">Strommittelwert 4</option>
</select>
<input type="submit">
[/code]
Code: Alles auswählen
@app.route('/xxxxxxxx', methods=['POST', 'GET'])
def values()
html seite mit der erstellung des Bildes
[codebox=html5 file=Unbenannt.html]
<img src="{{url_for('build_plot')}}" alt="Loading plot0" />
[/code]
Zeile 4 funktioniert nicht
Code: Alles auswählen
@app.route('/plot.png', methods=['POST', 'GET'])
def build_plot():
#values_of_interest = request.form??????
#zu plot png directvalues_of_interest = request.form['Daten_fürden_Plot']
conn = sqlite3.connect('/XXXXXX')
c = conn.cursor()
c.execute('SELECT {0}, Ortszeitstempel FROM egx300'.format(values_of_interest))
dates = []
values = []
for row in c.fetchall():
dates.append(row[1])
values.append(row[0])
fig = Figure()
ax = fig.add_subplot(111)
ax.plot(dates, values)
img = io.BytesIO()
canvas = FigureCanvasAgg(fig)
canvas.print_figure(img, format='png')
response = make_response(img.getvalue())
response.headers['Content-Type'] = 'image/png'
return response