API:Holidays viewer/fr

Présentation
Ce tutoriel permet de créer une application de démonstration qui récupère les jours fériés et les observations pour une date donnée dans Wikipedia, avec une option qui permet de se connecter pour ajouter de nouveaux jours.

Télécharger le code de GitHub Afficher l'application dans Toolforge

Les outils et les technologies utilisées pour créer l'application de démonstration sont :


 * Python 3 et Flask, un environnement Python.
 * JQuery et Bootstrap.
 * Modules de l'API Action de Mediawiki :, et.

Etape 1 : installation de l'environnement de développement Python et Flask
Python est fourni préinstallé avec la plupart des distributions Linux. Pour les autres systèmes d'exploitation, voir le guide des débutants Python pour les instructions concernant l'installation.

Installez Flask en exécutant. Si vous ne disposez pas de pip, récupérez-le à partir du site Pip web officiel

Etape 2: créer une application Flask simple
Dans votre répertoire racine (home), créez un répertoire appelé  et qui contiendra tous les fichiers des applications. Dans le répertoire, créez un fichier  et insérez-y le code suivant :

Exécutez l'application en utilisant la commande  et ouvrez   dans votre navigateur. Vous devriez voir « Holidays and observances » affiché.

Etape 3 : Création de l'architecture de base
L'application aura quatre pages : la page d'accueil, une page de recherche, une page pour la connexion et une page pour les annonces. Toutes les pages auront certains éléments en commun, il nous faut donc créer un fichier de configuration de base appelé  qui contiendra ces éléments.

Note that we are using Bootstrap classes to apply a specific CSS style to an element, Materialize icons for the add, search and arrow-back icons, and Jinja to extend the base layout to other pages and to pass variables from Python to HTML.

Les autres pages vont étendre  en utilisant le code suivant :

Etape 4 : Lister les jours de vacance
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:

Get today's date
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.

Affichage des applications
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

Avec  et   étant :



Etapes suivantes

 * Contribute a demo app that you have developed using the MediaWiki API to this code samples repository.

Voir aussi

 * — The quick start guide for the MediaWiki Action API.
 * — Parses the content of a page and obtain the output.
 * — Modifie une page.
 * — Permet de se connecter à un wiki.