57 lines
1.8 KiB
Python
57 lines
1.8 KiB
Python
import sqlite3,requests, json
|
|
|
|
from flask import Flask, flash, redirect, render_template, request, url_for
|
|
from werkzeug.exceptions import abort
|
|
|
|
|
|
def get_db_connection():
|
|
conn = sqlite3.connect('energiemon.db')
|
|
conn.row_factory = sqlite3.Row
|
|
return conn
|
|
|
|
app = Flask(__name__)
|
|
app.config['SECRET_KEY'] = 'Voobaiyae*h7kigj'
|
|
|
|
def wetterinfo():
|
|
api_key = "536479df69dcad6956b0c27300e8fddb"
|
|
lat = "50.63856454090637"
|
|
lon = "7.5160431030656145"
|
|
url = "https://api.openweathermap.org/data/2.5/weather?lat=%s&lon=%s&appid=%s&units=metric&lang=de" % (lat, lon, api_key)
|
|
response = requests.get(url)
|
|
data = json.loads(response.text)
|
|
|
|
current = data["main"]["temp"]
|
|
wetterString=""+str(current)+"°C|"
|
|
|
|
current = data["weather"][0]["description"]
|
|
wetterString+= current+"|"
|
|
return wetterString
|
|
|
|
|
|
@app.route('/', methods=('GET', 'POST'))
|
|
def index():
|
|
|
|
|
|
if request.method == 'POST':
|
|
gaszaehler = request.form['gaszaehler']
|
|
stromzaehler = request.form['stromzaehler']
|
|
wasserzaehler = request.form['wasserzaehler']
|
|
wetter = wetterinfo() + request.form['wetter']
|
|
conn = get_db_connection()
|
|
conn.execute("INSERT INTO eintraege ( gaszaehler, stromzaehler, wasserzaehler, wetterinfo) VALUES ( ?, ?, ?, ?)",
|
|
(gaszaehler , stromzaehler, wasserzaehler, wetter )
|
|
)
|
|
conn.commit()
|
|
conn.close()
|
|
flash('Vielen Dank G' + gaszaehler + ' S' + stromzaehler + ' W' + wasserzaehler,'success')
|
|
return redirect(url_for('index'))
|
|
|
|
|
|
conn = get_db_connection()
|
|
eintraege = conn.execute('SELECT * FROM eintraege').fetchall()
|
|
conn.close()
|
|
return render_template('index.html', eintraege=eintraege )
|
|
|
|
if __name__ == '__main__':
|
|
app.run()
|