modified: app.py
modified: templates/index.html
This commit is contained in:
25
app.py
25
app.py
@@ -27,25 +27,18 @@ def get_weather_data():
|
||||
except json.JSONDecodeError as e:
|
||||
return {"error": f"Fehler beim Verarbeiten der Wetterdaten: {e}"}
|
||||
|
||||
# Funktion, um die Wetterdaten für einen bestimmten Ort zu finden (mit mehreren Treffern)
|
||||
# Funktion, um die Wetterdaten für einen bestimmten Ort zu finden
|
||||
def find_weather_by_city(city, geojson_data):
|
||||
matched_stations = []
|
||||
|
||||
for feature in geojson_data['features']:
|
||||
station_name = feature['properties']['data_004']['value'] # stationOrSiteName
|
||||
station_name = feature['properties']['data_004']['value'] # 'STATION OR SITE NAME'
|
||||
if city.lower() in station_name.lower():
|
||||
matched_stations.append({
|
||||
return {
|
||||
"station": station_name,
|
||||
"temperature": feature['properties']['data_016']['value'],
|
||||
"precipitation": feature['properties']['data_021']['value'],
|
||||
"wind_speed": feature['properties']['data_057']['value'],
|
||||
"humidity": feature['properties']['data_015']['value']
|
||||
})
|
||||
|
||||
if matched_stations:
|
||||
return matched_stations
|
||||
else:
|
||||
return {"error": "Ort nicht gefunden"}
|
||||
"temperature": feature['properties']['data_015']['value'], # 'TEMPERATURE/AIR TEMPERATURE'
|
||||
"wind_speed": feature['properties']['data_071']['value'], # 'WIND SPEED'
|
||||
"humidity": feature['properties']['data_019']['value'] # 'RELATIVE HUMIDITY'
|
||||
}
|
||||
return {"error": "Ort nicht gefunden"}
|
||||
|
||||
# Route zum Laden der Startseite (index.html)
|
||||
@app.route('/')
|
||||
@@ -65,7 +58,7 @@ def get_weather():
|
||||
if "error" in weather_data:
|
||||
return jsonify(weather_data)
|
||||
|
||||
# Suche nach dem Wetter für den eingegebenen Ort (mit mehreren Treffern)
|
||||
# Suche nach dem Wetter für den eingegebenen Ort
|
||||
result = find_weather_by_city(city, weather_data)
|
||||
return jsonify(result)
|
||||
|
||||
|
||||
@@ -60,16 +60,13 @@
|
||||
if (data.error) {
|
||||
container.innerHTML = `<p>${data.error}</p>`;
|
||||
} else {
|
||||
data.forEach(item => {
|
||||
const weatherHTML = `
|
||||
<p><strong>Ort:</strong> ${item.station}</p>
|
||||
<p><strong>Temperatur:</strong> ${item.temperature || "N/A"} °C</p>
|
||||
<p><strong>Windgeschwindigkeit:</strong> ${item.wind_speed || "N/A"} m/s</p>
|
||||
<p><strong>Luftfeuchtigkeit:</strong> ${item.humidity || "N/A"} %</p>
|
||||
<p><strong>Niederschlag:</strong> ${item.precipitation || "N/A"} kg/m²</p>
|
||||
`;
|
||||
container.innerHTML += weatherHTML;
|
||||
});
|
||||
const weatherHTML = `
|
||||
<p><strong>Ort:</strong> ${data.station}</p>
|
||||
<p><strong>Temperatur:</strong> ${data.temperature} K</p>
|
||||
<p><strong>Windgeschwindigkeit:</strong> ${data.wind_speed} m/s</p>
|
||||
<p><strong>Luftfeuchtigkeit:</strong> ${data.humidity} %</p>
|
||||
`;
|
||||
container.innerHTML = weatherHTML;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user