API:Holidays viewer/de

Überblick
Diese Anleitung erklärt, wie man eine Demo-App erstellt, die Feiertage und Feste für ein bestimmtes Datum aus Wikipedia erhält, mit der Option, sich anzumelden, um neue Feiertage hinzuzufügen.

Lade den Code von GitHub herunter Durchsuche die App auf Toolforge

Die zur Erstellung dieser Demo-App genutzten Werkzeuge und Technologien sind:


 * Python 3 und Flask, ein Python-Framework.
 * jQuery und Bootstrap. They are loaded from Wikimedia Toolforge for privacy reasons.
 * Module, und  der MediaWiki Action API.



Eine Schritt-für-Schritt-Anleitung, um diese Anwendung zu erstellen


Schritt 1: Python- und Flask-Entwicklungsumgebung aufsetzen
Python ist auf den meisten Linux-Systemen vorinstalliert. Für andere Betriebssysteme siehe die Python-Anfängeranleitung für Hinweise zur Installation.

Installiere Flask, indem du  ausführst. Wenn du pip noch nicht installiert hast, erhalte es von der offiziellen Pip-Webseite.



Schritt 2: Eine einfache Flask-Anwendung erstellen
Erstelle in deinem Heimverzeichnis einen Ordner namens, der alle Dateien der App enthalten wird. Erstelle in dem Ordner eine Datei namens  und füge in sie folgenden Code ein:

Führe die App mit dem Befehl  aus und öffne   in deinem Browser. Du solltest "Holidays and observances" sehen können.



Schritt 3: Das grundlegende Layout erstellen
Die App wird vier Seiten haben: Die Hauptseite, eine Suchseite, eine Anmeldeseite und eine Seite zum Hinzufügen. Jede Seite wird gemeinsame Elemente nutzen, sodass wir eine grundlegende Layout-Datei namens  erstellen müssen, die diese Elemente enthält.

Beachte, dass wir Bootstrap-Klassen nutzen, um einen bestimmten CSS-Style auf ein Element anzuwenden, Materialize-Symbole für die Symbole zum Hinzufügen, Suchen und Zurückgehen und Jinja, um das grundlegende Layout auf andere Seiten auszuweiten und Variablen aus Python nach HTML weiterzugeben.

Andere Seiten werden  durch den Code unten erweitern:



Schritt 4: Feiertage auflisten
Die Root-URL der App wird die -Funktion auslösen, die Feiertage für ein bestimmtes Datum auflistet.

In der Funktion und über die App bezieht sich  auf das Datum der Feiertage, die aufgelistet werden sollen,   auf den Titel der Seite und   auf die HTML, die die aufzulistenden Feiertage enthält. Wir werden auch die Funktion  nutzen, die eine bestimmte HTML-Datei aus dem Vorlagen-Verzeichnis rendert. Andere zur Funktion hinzugefügte Argumente sind Variablen, die an die HTML-Datei übergeben werden.

Aktualisiere  in   mit dem Code unten:



Aktuelles Datum erhalten
Wenn kein Datum angegeben ist, führen wir die Feiertage für das aktuelle Datum auf. Um das Python-Modul datetime zu nutzen, um das heutige Datum zu erhalten, importiere das Modul mit  und erstelle dann die folgende Funktion:

Rufe die Funktion in  an:



Die aufzulistenden Feiertage erhalten
Sobald wir das Datum haben, erhalten wir die Feiertage für das Datum. Wikipedia hat eine Seite für jedes Datum und die Feiertage befinden sich in einem Abschnitt mit dem Titel "Holidays and observances". Um die Feiertage zu erhalten, müssen wir die Nummer des Abschnitts und den Inhalt dieser Abschnittnummer erhalten.

Erstelle eine Funktion, um die Abschnittsnummer über zu erhalten:

Erstelle eine Funktion mit dem Namen, um die Feiertage in diesem Abschnitt ebenfalls über  zu erhalten. Anschließend können wir die Funktionen in  anrufen:



Feiertagslinks aktualisieren
Die HTML der zurückgegebenen Feiertage enthält interne Links, die auf diese Feiertage verweisen, z.B. " ". Wir müssen diesen Links in jQuery " " voranstellen, um sie in unserer App zu externen Links zu machen und zu bewirken, dass sie in einem neuen Tab geöffnet werden. Um dies zu tun, füge folgenden Code zu  hinzu:

Füge dann jQuery zu  hinzu mit:



Schritt 5: Nach Feiertagen für andere Daten suchen
Um Feiertage für andere Daten zu erhalten, erstelle eine Such-Route, um ein Formular anzuzeigen, dass Monat und Tag aufnimmt, nach denen gesucht werden soll:

Nachdem das Such-Formular übermittelt wurde, aktualisiere, damit es das eingegebene Datum wird. Um dies zu tun, füge folgenden Code zu  hinzu:



Schritt 6: Einen Feiertag hinzufügen
Die Seite, zu der wir einen neuen Feiertag hinzufügen werden, ist für Bearbeitungen von unangemeldeten Benutzern geschützt, sodass wir uns zunächst über API:Anmelden#Clientlogin anmelden müssen.

Um einen Feiertag hinzuzufügen, sende eine Abfrage an mit dem Datum und der Beschreibung des Feiertags. Die Bearbeitung fügt neue Feiertage zu dieser Seite in der Test-Wikipedia hinzu: Sandbox/Holidays_and_observances. Dies dient dazu, zu verhindern, dass Test-Feiertage zur englischsprachigen Wikipedia hinzugefügt werden.

Nachdem der Feiertag hinzugefügt wurde, leite zur Hauptseite weiter, wo die hinzugefügten Feiertage ebenfalls angezeigt und fett formatiert werden, um sie von den echten Feiertagen zu unterscheiden. Um die Test-Feiertage zusammen mit den echten Feiertagen zu erhalten, aktualisiere :



Schritt 7: Die App gestalten
Füge weiteren Style zu unserer App hinzu, erstelle ein Stylesheet namens  und verlinke es von , indem du   hinzufügst.



Anwendungslayout
An diesem Punkt sollte die Struktur der App wie folgt aussehen:

$HOME/holidays-viewer ├── templates/ │  └── add.html └── index.html └── layout.html └── login.html └── search.html ├── static/ │  └── style.css └── update-links.js ├── app.py

Wobei  und   sind:





Nächste Schritte

 * Trage eine Demo-App, die du mithilfe der MediaWiki API entwickelt hast, zu dem Code-Beispiel-Repositorium bei.



Siehe auch

 * — Die Schnellstart-Anleitung für die MediaWiki Action API.
 * — Parst den Inhalt einer Seite und erhält die Ausgabe.
 * — Bearbeitet eine Seite.
 * — Erlaubt das Anmelden in einem Wiki.