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.

Laden 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.
 * Module, und  der MediaWiki Action API.

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
The root url of the app will trigger the  function, which lists holidays for a certain date.

In the function and throughout the app,  refers to the date of the holidays to be listed,   refers to the title of the page, and   refers to the html which contains the holidays to be listed. We'll also be using the  function which renders a specific html file from the templates directory. Other arguments added to the function are variables which are being passed to the html file.

In, update   with the code below:

Aktuelles Datum erhalten
If no date is specified, we'll list holidays for today's date. To use Python's datetime module to get today's date, import the module with  then create the following function:

Call the function in :

Get the holidays to be listed
Once we have the date, we get the holidays for that date. Wikipedia has a page for each date and the holidays are under a section titled "Holidays and observances". To get the holidays, we need to get it's section number and the content in that section number.

Create a function to get the section number using :

Create a function called  to get the holidays in that section using  as well, then call the functions in  :

Update holiday links
The HTML of the holidays returned contains internal links that point to those holidays, e.g " ". We need to prepend " " to these links using jQuery in order to make them external links in our app, and make them open in a new tab. To do that, add the following code to :

Then add jQuery to  using:

Step 5: Search for holidays of other dates
To get holidays of other dates, create a search route to display a form that collects the month and day to search for:

Once the search form has been submitted, update  to be the date that has been entered. To do that, add the following code to :

Step 6: Add a holiday
The page to which we'll be adding a new holiday is protected from edits by anonymous users, so we need to log in using API:Login#clientlogin first.

To add a holiday, send a request to with the date and description of the holiday. The edit adds new holidays to this page on Test Wikipedia: Sandbox/Holidays_and_observances. This is to prevent adding test holidays to English Wikipedia.

After the holiday is added, redirect to the homepage where the holidays added will also be shown, and formatted in bold to differentiate them from the real holidays. To fetch the test holidays alongside the real holidays, update :

Step 7: Styling the app
To add more style to our app, create a stylesheet named  and link to it from   by adding.

Anwendungslayout
At this point, the structure of your app should be:

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

With  and   being:



Nächste Schritte

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

Siehe auch

 * — The quick start guide for the MediaWiki Action API.
 * — Parst den Inhalt einer Seite und erhält die Ausgabe.
 * — Bearbeitet eine Seite.
 * — Allows logging in to a wiki.