· 5 years ago · Jun 23, 2020, 02:26 PM
1# -*- coding: utf-8 -*-
2"""
3Created on Tue Jun 23 07:42:21 2020
4
5@author: MMORENO
6"""
7
8# first try with flask
9
10import os
11import pickle
12import subprocess
13
14import pandas as pd
15from flask import Flask, render_template, redirect, url_for
16from werkzeug.utils import secure_filename
17from forms import CSVForm, SelectPlotForm, VariableForm
18
19
20
21app = Flask(__name__)
22
23app.config['SECRET_KEY'] = 'SECRET_KEY'
24
25# global dataframe with all data
26DF = pd.DataFrame()
27
28
29
30
31@app.route('/', methods=['POST', 'GET'])
32def index():
33
34 global DF
35
36 form = CSVForm(csrf_enabled=False)
37
38 if form.validate_on_submit():
39 f = form.csv.data
40 filename = secure_filename(f.filename)
41 fpath = os.path.join(app.root_path, 'csvs', filename)
42 DF = pd.read_csv(fpath)
43 DF['UTC'] = pd.to_datetime(DF['UTC'])
44
45
46 return redirect(url_for('plotting'))
47
48 return render_template('upload.html', form=form)
49
50
51@app.route('/plotting', methods=['POST', 'GET'])
52def plotting():
53
54 xform = VariableForm(DF.columns.tolist())
55 yform = VariableForm(DF.columns.tolist())
56
57 if xform.validate_on_submit():
58 xvar = xform.var.data
59
60 if yform.validate_on_submit():
61 yvar = yform.var.data
62
63# import pdb; pdb.set_trace()
64 return render_template('plotting.html', xform=xform, yform=yform)
65
66
67@app.route('/make_plot', methods=['POST', 'GET'])
68def make_plot():
69
70 df = DF[['Wind_speed_10m_plc','Active_power_10m_plc']]
71 subprocess.run(['python', 'plots.py'], input=pickle.dumps(df))
72 print('hellloooooo')
73 return redirect(url_for('plotting'))