From 01db78a00b0c15f859c148eb9b17d93a0b1bf96c Mon Sep 17 00:00:00 2001 From: clerie Date: Tue, 7 Apr 2020 20:26:14 +0200 Subject: [PATCH] Export dwd to xlsx and csv --- wetter/templates/target.html | 4 ++-- wetter/views.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/wetter/templates/target.html b/wetter/templates/target.html index 1bb01ed..1b09590 100644 --- a/wetter/templates/target.html +++ b/wetter/templates/target.html @@ -37,7 +37,7 @@
ce

- xlsx csv + xlsx csv
@@ -46,7 +46,7 @@
dwd

- txt + xlsx csv txt
diff --git a/wetter/views.py b/wetter/views.py index 03a1262..a505609 100644 --- a/wetter/views.py +++ b/wetter/views.py @@ -77,6 +77,35 @@ def export_target_ce_xlsx_render(dwd_id): return excel.make_response_from_array(out, 'xlsx', file_name=filename) +def export_target_dwd(request, dwd_id): + fr = fromisoformat(request.args.get('from')) + to = fromisoformat(request.args.get('to')) + + station = Stations.query.filter_by(dwd_id=dwd_id).first_or_404() + climate = Climate.query.filter_by(station=station.id).filter(Climate.date >= fr.isoformat(), Climate.date <= to.isoformat()).order_by(Climate.date.asc()) + + out = [] + out.append(["STATIONS_ID", "MESS_DATUM", "QN_3", "FX", "FM", "QN_4", "RSK", "RSKF", "SDK", "SHK_TAG", "NM", "VPM", "PM", "TMK", "UPM", "TXK", "TNK", "TGK", "eor"]) + + for c in climate: + out.append([ station.dwd_id, c.date.isoformat(), c.qn_3, c.fx, c.fm, c.qn_4, c.rsk, c.rskf, c.sdk, c.shk_tag, c.nm, c.vpm, c.pm, c.tmk, c.upm, c.txk, c.tnk, c.tgk, "eor"]) + + filename = 'wetter_' + station.dwd_id +'_' + fr.isoformat() + '_' + to.isoformat() +'_dwd' + + return out, filename + +@app.route('/station//export/target/dwd.csv/') +def export_target_dwd_csv_render(dwd_id): + out, filename = export_target_dwd(request, dwd_id) + + return excel.make_response_from_array(out, 'csv', file_name=filename) + +@app.route('/station//export/target/dwd.xlsx/') +def export_target_dwd_xlsx_render(dwd_id): + out, filename = export_target_dwd(request, dwd_id) + + return excel.make_response_from_array(out, 'xlsx', file_name=filename) + @app.route('/station//export/target/dwd.txt/') def export_target_dwd_txt_render(dwd_id): fr = fromisoformat(request.args.get('from'))