-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
95 lines (83 loc) · 2.79 KB
/
app.py
File metadata and controls
95 lines (83 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
from dash import ctx, Output, Input
from datetime import datetime
from components.components import get_tabs
from utils.methods import *
import dash_bootstrap_components as dbc
import sqlite3
import dash
# Today
today = datetime.today()
# Dash App with external bootstrap theme
app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
app.title = "Prognose Challenge Impuls"
# Get Tabs for layout
cities = {'Köln': 'Cologne', 'Berlin': 'Berlin', 'München': 'Munich'}
tabs = get_tabs(cities=cities)
# Define the app-layout
app.layout = html.Div([
html.Div([dbc.Container(
[
html.H1("Code Challenge Impuls", className="display-3"),
html.P(
"Prognosedaten über API für Windgeschwindigkeit, Temperatur und Cloud Coverage - "
"Orte: Köln, München und Berlin",
className="lead",
),
html.Hr(className="my-2"),
html.P(
"Heute ist der {}".format(datetime.today().strftime("%d.%m.%Y")),
),
],
fluid=True,
className="py-3",
)]),
html.Div([
tabs,
html.Div(id='tabs-content-example-graph')
])
])
@app.callback(
Output("Speichern-Data-Cologne", "data"),
Input("Speichern-Cologne", "n_clicks"),
prevent_initial_call=True,
)
def func(n_clicks):
if "Speichern-Cologne" == ctx.triggered_id:
df = retrieve_data('Cologne')
create_connection('myDatabase.db')
conn = sqlite3.connect('myDatabase.db')
df.to_sql(name='Cologne', con=conn, if_exists='append')
else:
return None
return dcc.send_data_frame(df.to_csv, "prognosedaten-Köln-{}.csv".format(datetime.now()))
@app.callback(
Output("Speichern-Data-Munich", "data"),
Input("Speichern-Munich", "n_clicks"),
prevent_initial_call=True,
)
def func(n_clicks):
if "Speichern-Munich" == ctx.triggered_id:
df = retrieve_data('Munich')
create_connection('myDatabase.db')
conn = sqlite3.connect('myDatabase.db')
df.to_sql(name='Munich', con=conn, if_exists='append')
else:
return None
return dcc.send_data_frame(df.to_csv, "prognosedaten-München-{}.csv".format(datetime.now()))
@app.callback(
Output("Speichern-Data-Berlin", "data"),
Input("Speichern-Berlin", "n_clicks"),
prevent_initial_call=True,
)
def func(n_clicks):
if "Speichern-Berlin" == ctx.triggered_id:
df = retrieve_data('Berlin')
create_connection('myDatabase.db')
conn = sqlite3.connect('myDatabase.db')
df.to_sql(name='Berlin', con=conn, if_exists='append')
else:
return None
return dcc.send_data_frame(df.to_csv, "prognosedaten-Berlin-{}.csv".format(datetime.now()))
# Run the app
if __name__ == '__main__':
app.run_server(debug=True)