API:Picture of the day viewer/de

Überblick
In diesem Tutorial erfährst du, wie du mit der MediaWiki Action API einen Wikipedia:Bild des Tages Viewer erstellst. Laden den Code von GitHub herunter Durchsuche die App auf Toolforge

In diesem Lernprogramm lernst du, wie du dies tun kannst:


 * Python 3 und Flask-Framework
 * und -Modul der MediaWiki Action API

Python aufsetzen
Diese Anleitung nutzt Python 3. Du kannst die aktuellste Python-Version hier herunterladen:


 * Python für Windows 7, 8 und 10
 * Python für Mac OS X

Siehe die Python-Anfängeranleitung für weitere Hinweise zur Installation von Python auf unterschiedlichen Betriebssystemen.

Flask aufsetzen
Pip ist eine Paketverwaltung, die du nutzen kannst, um Flask zu installieren:. Wenn du pip noch nicht installiert hast, installiere es von der offiziellen Pip-Webseite.

Schritt 2: Eine einfache Flask-Anwendung erstellen
Wenn du alles erfolgreich installiert hast, setze in deinem Projekt-Ordner das folgende Skript in  ein:. Wenn du es ausführst, sollte "Hello world" auf http://localhost:5000/ angezeigt werden:

Schritt 3: Bild-des-Tages-Betrachter
Nachdem du nun alles aufgesetzt hast, kannst du damit beginnen, Code für den Bild-des-Tages-Betrachter zu schreiben. Das Bild des Tages oder POTD ist ein exzellentes Bild, das täglich auf der Hauptseite der Wikipedia angezeigt wird. Du wirst das Bild aus einer Wiki-Vorlage erhalten, die sich jeden Tag ändert.

Aktuelles Datum erhalten
Als erstes müssen wir einfach wissen, welcher Tag heute ist. Da das POTD täglich aktualisiert wird, benötigst du das Datum von heute, um auf die Archive zugreifen und eine stabile Version des korrekten Bildes erhalten zu können. Um dies zu tun, importiere die Python-Klasse.

Definiere als nächstes eine neue Funktion. wird die Webseite rendern und alle Daten, die mit unseren API-Abfragen zu tun haben, weitergeben. Siehe für weitere Informationen zur  -Datei, die wir als Vorlage nutzen. Zunächst sollte  eine Variable für das aktuelle Datum enthalten. Wir werden sie bald nutzen, um eine Abfrage zusammenzustellen, mit der wir auf das POTD zugreifen.

Die Action API anrufen
Die Action API funktioniert, indem sie Daten als Antwort auf HTTP-Abfragen sendet. Um dies zu tun, musst du die Python-Abfrage-Bibliothek importieren.

Füge als nächstes zwei neue Variablen hinzu:  und. Du wirst das Objekt  nutzen, um Abfragen an die URL   zu stellen.

Rufe in einer neuen Funktion   an, um das in eine geschützte POTD-Seite eingebundene Bild abzufragen (Beispiel). Nutze aus diesem Anruf den Dateinamen des Bildes, um anzurufen und erhalte die Quell-URL des Bildes. In diesem Beispiel wird der zweite API-Anruf in der Helfer-Funktion  verarbeitet.

Die Wikipedia-Archive führen das Datum im ISO-Standard-Format auf -- zum Beispiel 2019-01-31 für den 31. Januar 2019. Du kannst das korrekte Format durch Nutzung der Datumsmethode  erhalten.

Ändere schließlich, um   anzurufen. Importiere  aus   und lasse     ausgeben.

Die Seite anzeigen


Flask-Vorlagen enthalten hauptsächlich HTML-Markup, sie nutzen jedoch auch Jinja, um dynamischen Inhalt zu rendern. Jinja-Markup sieht so aus --  -- und wird genutzt, um Python-Variablen oder -Ausdrücke in unsere grundlegende Seitenstruktur einzuführen. Füge etwas Boilerplate in HTML 5 und ein paar Elemente zu  hinzu. Stelle sicher, es in einem Verzeichnis in deiner App namens  zu speichern.

Es interaktiv machen
Füge ein -Element zu  hinzu und gib ihm für die Bestätigungs-Schaltflächen die folgenden Eingaben: Back und Next. Wenn eine der Schaltflächen ausgewählt wird, sendet das Formular eine POST-Abfrage und der ausgewählte Wert wird an   zurückgegeben. Dies ermöglicht es Benutzern, die Archive des Bild des Tages zu durchsuchen.

Aktualisiere als nächstes  mit einer  -Funktion, um das Datum zu setzen, das dem Benutzer angezeigt wird. Erweitere auch die -Route, um POST-Abfragen aus dem Formular verarbeiten zu können. Importiere die -Flask-Klasse, um   zu erlauben, die POST-Abfrage-Nachricht zu lesen.

Der vollständige Python- und HTML-Code:

Deine App gestalten
Flask nutzt ein Verzeichnis namens static, das alle Helfer-Dateien enthält, die während des gesamten Lebenszyklus der App gleich bleiben. This is a useful place to put any stylesheets or additional scripts. Our stylesheet will be using some colors and visual motifs based on the Wikimedia Style Guide. Place a CSS file in.

Nächste Schritte
can be used to obtain the whole parsed text from articles on Wikis that have the extension installed (see example).
 * Got questions about this tutorial? Ask here on Discourse.
 * Contribute a demo app that you have developed using the MediaWiki API to this code samples repository.
 * Learn some ways to add descriptive text from the Picture of the day page:
 * provides  which can be used as a link preview

Siehe auch

 * : Overview of the Action API
 * : FAQ describing the Action API in more depth
 * MediaWiki Action API Code Samples repo: Contains more demos and sample code
 * More on Wikipedia and IFTTT
 * MediaWiki Action API Code Samples repo: Contains more demos and sample code
 * More on Wikipedia and IFTTT