Python ist eine wachsende Sprache, die in der Programmiergemeinschaft immer beliebter wird. Eine der Hauptfunktionen von Python ist, dass es einfach ist, mit APIs auf Websites zu arbeiten, und viele Wetterentitäten haben ihre API, auf die Sie mit nur wenigen Codezeilen zugreifen können. Eine solche großartige API ist die API der Open Weather Map, mit der Sie ein kleines Programm erstellen können, um überall auf der Welt auf die Wettervorhersage eines beliebigen Ortes zuzugreifen! Dieser Artikel wird Ihnen helfen, Wetterinformationen mit Python zu erhalten.

Was ist OpenWeatherMap?

Die OpenWeatherMap (OWM) ist eine hilfreiche und kostenlose Möglichkeit, Wetterinformationen zu sammeln und anzuzeigen. Da es sich um ein Open-Source-Projekt handelt, kann es auch kostenlos verwendet und geändert werden. OWM bietet eine Vielzahl von Funktionen und ist sehr flexibel. Aufgrund dieser Eigenschaften bietet es Entwicklern viele Vorteile. Einer der Hauptvorteile von OWM ist, dass es sofort einsatzbereit ist. Im Gegensatz zu anderen Wetteranwendungen verfügt OWM über eine einsatzbereite Web-API. Sie müssen keine Software installieren oder eine Datenbank einrichten, um es zum Laufen zu bringen. Dies ist eine großartige Option für Entwickler, die schnell und effizient Wetterdaten auf einer Website abrufen möchten.

Es verfügt über eine API, die HTML-, XML- und JSON-Endpunkte unterstützt. Es gibt eine begrenzte kostenlose Nutzungsstufe, aber für mehr als 60 Anrufe pro Minute muss ein Abonnement ab 40 USD pro Monat erworben werden. Für den Zugriff auf historische Daten ist ein Abonnement ab 150 USD pro Monat erforderlich. Aktuelle Wetterinformationen, erweiterte Vorhersagen und grafische Karten können von Benutzern angefordert werden. Diese Karten zeigen Wolkenbedeckung, Windgeschwindigkeit sowie Druck und Niederschlag.

Voraussetzungen und Konfiguration

Holen Sie sich einen API-Schlüssel

Als erstes müssen Sie einen API-Schlüssel mit der OpenWeatherMap erstellen. Der API-Schlüssel teilt Ihrer App mit, dass sie autorisiert ist, sich mit der API zu verbinden. Sobald Sie Ihren API-Schlüssel haben, können Sie auf die API-Dokumentation zugreifen.

Um einen API-Schlüssel zu erhalten, müssen Sie ein kostenloses Benutzerkonto auf OpenWeatherMap erstellen. So können Sie es tun:

  1. Um Wetterinformationen mit Python zu erhalten, müssen wir diesen Link besuchen.
  2. Klicken Sie im Abschnitt Aktuelle Wetterdaten auf die Schaltfläche Abonnieren.
  3. Klicken Sie im kostenlosen Abschnitt auf API-Schlüssel abrufen.
  4. Erstellen Sie nun hier ein Konto und führen Sie dann die E-Mail-Bestätigungsverfahren durch.
  5. Nachdem Sie die obigen Schritte ausgeführt haben, gehen Sie zur Seite Mitglieder und klicken Sie oben auf der Seite auf das API-Schlüsselelement.
  6. Hier erstellen Sie entweder einen neuen API-Schlüssel oder verwenden den bereits vorhandenen.

Installationsanfragen

Die Requests-Bibliothek wird zum Senden von HTTP-Requests und zum Interagieren mit Webservern verwendet. Es vereinfacht Aufgaben wie POSTing und GETing mit URL-Endpunkten und Formularen und unterstützt leistungsstarke Erweiterungen wie die Verwendung eines Proxys, Web-Sockets und vieles mehr. Sie können den folgenden Befehl ausführen oder seine Dateien herunterladen, um Anforderungen zu installieren.

pip3 install requests

Erstellen einer einfachen Wetteranzeige mit Python-App

Da wir nun über eine API zum Abrufen des aktuellen Wetters verfügen, erstellen wir eine einfache App, die das aktuelle Wetter an jedem Ort anzeigen kann! So machen wir es:

# python_test.py
import requests

api_key = "AAAAPPPPIIII_____KKKKEEEEYYYY"  # Enter the API key you got from the OpenWeatherMap website
base_url = "http://api.openweathermap.org/data/2.5/weather?"

city_name = input("Enter city name : ")
complete_url = base_url + "appid=" + 'd850f7f52bf19300a9eb4b0aa6b80f0d' + "&q=" + city_name  # This is to complete the base_url, you can also do this manually to checkout other weather data available
response = requests.get(complete_url)
x = response.json()

if x["cod"] != "404":
    y = x["main"]

    current_temperature = y["temp"]
    z = x["weather"]

    weather_description = z[0]["description"]

    print(" Temperature (in kelvin unit) = " +
                    str(current_temperature) +
          "\n description = " +
                    str(weather_description))

else:
    print(" City Not Found ")

Führen Sie diese Datei direkt in Ihrer IDE oder einem Terminal aus, indem Sie den gesamten Speicherort und den Namen der Datei angeben. Sie können den gesamten Speicherort einer Datei mit PWD herausfinden.

Wenn es erfolgreich funktioniert hat, sollten Sie ein Ergebnis wie dieses sehen:

linux@linux-System-Product-Name:~/Desktop/Weather_predition$ /bin/python3 /home/linux/Desktop/Weather_predition/h1z1.py
Enter city name : paris
Temperature (in kelvin unit) = 285.77
atmospheric pressure (in hPa unit) = 1019
humidity (in percentage) = 91
description = broken clouds

Wenn Sie den obigen Code verstanden haben, können Sie damit fast alles machen, was Sie wollen. Es gibt einige knifflige Teile, aber wenn Sie sich daran halten, können Sie sogar eine vollwertige Desktop- oder Webanwendung damit erstellen. Nur um Ihnen zu zeigen, werden wir im nächsten Abschnitt eine einfache Webseite mit Flask erstellen, die Anfragen verwendet, um das Wetter eines beliebigen Ortes auf einer HTML-Seite anzuzeigen.

Erstellen einer einfachen Flask-Seite zum Anzeigen des Wetters

Da wir die oben genannten Konfigurationen bereits vorgenommen haben, können wir direkt mit der Erstellung einer einfachen Kolbenanwendung beginnen.

Hinweis: Wenn Flask noch nicht installiert ist, können Sie es installieren mit:

pip install django                                                                                                                                                                                                                             
# flask_test.py
from flask import Flask, render_template, request
import requests

app = Flask(__name__)

if __name__ == '__main':
  app.run(ddebug=True)

Dies ist eine einfache Flask-Anwendung mit neuen Funktionen. Wir müssen sie anpassen, damit wir unsere Wetterdetails von dort auf einer Vorlage anzeigen können. Fügen Sie dazu die folgende Zeile in diese Datei wie folgt ein:

# flask_test.py
from flask import Flask, render_template, request
import requests

app = Flask(__name__)

@app.route('/temperature', methods=['POST'])
def temperature():
    city_name = request.form['zip']
    r = requests.get('http://api.openweathermap.org/data/2.5/weather?'+ "appid=" + "d850f7f52bf19300a9eb4b0aa6b80f0d" + "&q=" + city_name) # Enter your API key
    json_object = r.json()
    temp_k = float(json_object['main']['temp'])
    temp_f = (temp_k - 273.15)
    return render_template('temperature.html', temp=temp_f)

@app.route('/')
def index():
return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

Fügen Sie die Vorlagendatei außerdem Ihrem Projektordner hinzu.

# index.html

<html>
<head>
<title>Request Example</title>
</head>
<body>
<form method="POST" action="/temperature">
City name/zip : <input type="text" name="zip">
<input type="submit">
</form>
</body>
</html>


# temperature.html

<html>
<head><title>Current Temperature</title></head>
<body>
<h1> The current temperature (C) is : {{ temp }} degrees. </h1>
</body>
</html>

Nachdem Sie alle Dateien im selben Ordner abgelegt haben, können Sie sie mit derselben Methode wie oben beschrieben ausführen. und Sie sollten ein Ergebnis wie dieses erhalten:

linux@linux-System-Product-Name:~/Desktop/python-weather-api-master$ /bin/python3 /home/linux/Desktop/python-weather-api-master/test.py
* Serving Flask app 'test' (lazy loading)
* Environment: production
  WARNING: This is a development server. Do not use it in a production deployment.
  Use a production WSGI server instead.
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 121-505-311

Von hier aus können Sie den oben angegebenen Link http://127.0.0.1:5000 öffnen und sollten auf diese Seite weitergeleitet werden:

get-weather-information-using python-1

Hier können Sie den Namen oder die Postleitzahl der Stadt eingeben, deren Temperatur Sie wissen möchten, und Sie erhalten das Ergebnis als:

weather-information-using-python

Und es ist geschafft!! Sie können es von hier aus anpassen und möglicherweise etwas mehr Funktionen hinzufügen. Die OpenWeatherMap verfügt über eine großartige Dokumentation und die Anforderungsbibliothek kann in vielen anderen Anwendungen verwendet werden, die Ihnen noch mehr Funktionen und Funktionen zur Verfügung stellen, die Sie in die Anwendung integrieren können. Sie können einfach eine Verbindung zur OWM-API herstellen und mit Python Wetterinformationen abrufen.

Hier sind einige nützliche Tutorials, die Sie lesen können: