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
L'URL de base de l'application va activer la fonction, qui liste les vacances à une date donnée.

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. Les autres arguments ajoutés à la fonction sont les variables qui seront passées au fichier HTML.

Dans, mettre à jour   avec le code ci-dessous :

Obtenir la date du jour
Si aucune date n'est précisée, les vacances seront affichées pour la date du jour. To use Python's datetime module to get today's date, import the module with  then create the following function:

Appeler la fonction dans  :

Récupérer la liste des vacances
Une fois la date obtenue, nous obtenons les vacances pour cette date. Wikipedia possède une page par date et les vacances figurent dans une section intitulée Holidays and observances. To get the holidays, we need to get it's section number and the content in that section number.

Créez une fonction pour obtenir le numéro de section en utilisant :

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

Mettre à jour les liens de vacance
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. Pour faire cela, ajoutez le code suivant à  :

Ensuite ajoutez jQuery à  en utilisant :

Etape 5 : recherche des vacances à d'autres 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. Pour faire cela, ajoutez le code suivant à  :

Etape 6 : Lister un jour de vacance
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 :

Etape 7 : Habiller l'application
Pour ajouter davantage de style à votre application, créez une feuille de style appelée  et créez un lien dessus à partir de   en ajoutant.

Affichage des applications
A ce moment, la structure de votre application devrait être :

$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

 * — Guide de démarrage rapide pour l'API Action de MediaWiki.
 * — Analyse le contenu d'une page pour générer les sorties.
 * — Modifie une page.
 * — Permet de se connecter à un wiki.