You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.9 KiB
68 lines
1.9 KiB
from flask import Flask, render_template
|
|
from modules import database
|
|
from dotenv import load_dotenv
|
|
import os
|
|
|
|
# Laad omgevingsvariabelen vanuit .env bestand
|
|
load_dotenv()
|
|
|
|
app = Flask(__name__)
|
|
|
|
# Configuratie voor database en logging uit omgevingsvariabelen
|
|
config = {
|
|
'user': os.getenv('DB_USER'),
|
|
'password': os.getenv('DB_PASSWORD'),
|
|
'host': os.getenv('DB_HOST'),
|
|
'database': os.getenv('DB_NAME')
|
|
}
|
|
logger = app.logger # Flask loggers
|
|
|
|
|
|
def calculate_windkracht(wind_speed):
|
|
"""Berekent de windkracht op basis van de wind_snelheid (m/s)."""
|
|
if wind_speed <= 0.2:
|
|
return "Windstil", 0
|
|
elif wind_speed <= 1.5:
|
|
return "Zwak", 1
|
|
elif wind_speed <= 3.3:
|
|
return "Matig", 2
|
|
elif wind_speed <= 5.4:
|
|
return "Frisse wind", 3
|
|
elif wind_speed <= 7.9:
|
|
return "Harde wind", 4
|
|
elif wind_speed <= 10.7:
|
|
return "Stormachtig", 5
|
|
else:
|
|
return "Storm", 6
|
|
|
|
|
|
@app.route('/')
|
|
def index():
|
|
# Maak een database-object (pas de naam aan naar Database)
|
|
db = database.Database(config, logger) # Veranderd naar database.Database
|
|
|
|
# Haal de weerdata op uit de database
|
|
weather_data = db.get_weather_data()
|
|
|
|
# Verwerk de windkracht op basis van de gemiddelde wind_speed
|
|
for entry in weather_data:
|
|
wind_speed = entry['avg_wind_speed']
|
|
|
|
if wind_speed is not None:
|
|
entry['windkracht_tekst'], entry['windkracht_num'] = calculate_windkracht(
|
|
wind_speed)
|
|
else:
|
|
entry['windkracht_tekst'] = "Gegevens niet beschikbaar"
|
|
entry['windkracht_num'] = None
|
|
|
|
# Voeg de dag van de week toe (bijvoorbeeld 'Maandag', 'Dinsdag', etc.)
|
|
# Gebruik direct strftime op een datetime object
|
|
entry['dag_van_de_week'] = entry['date'].strftime('%A')
|
|
|
|
# Geef de verwerkte data door aan de template
|
|
return render_template('index.html', weather_data=weather_data)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app.run(debug=True)
|