Cette application Flask permet de récupérer et d’afficher des informations sur une entité donnée à partir de l’API Wikidata. En utilisant un identifiant Wikidata, l’application interroge l’API et retourne une page HTML contenant :
- Les métadonnées de la réponse (code HTTP, type de contenu, etc.).
- Les données JSON de l'entité si elles sont disponibles.
- Un message d'erreur si l'identifiant est invalide ou si une erreur se produit.
-
Route principale :
/retrieve_wikidata/<id>
: Accepte un identifiant Wikidata en tant que paramètre et affiche les informations correspondantes.
-
Affichage dynamique :
- Utilise Jinja pour rendre une page HTML avec les données obtenues.
-
Gestion des erreurs :
- Affiche des messages d'erreur clairs pour les identifiants invalides ou les erreurs réseau.
Avant de commencer, assurez-vous d’avoir installé les outils suivants :
- Python 3.10+
- Pip (gestionnaire de packages pour Python)
-
Clonez le dépôt GitHub :
git clone https://github.com/<votre_nom_utilisateur>/<nom_du_depot>.git cd <nom_du_depot>
-
Créez un environnement virtuel et activez-le :
python -m venv env source env/bin/activate # Linux/Mac env\Scripts\activate # Windows
-
Installez les dépendances :
pip install -r requirements.txt
-
Exécutez l’application Flask :
python run.py
-
Accédez à l’application dans votre navigateur à l'adresse :
http://127.0.0.1:5000/retrieve_wikidata/<id>
Remplacez
<id>
par un identifiant Wikidata, par exempleQ42
(Douglas Adams).
Pour l’identifiant Q42
, l’application retournera une page HTML affichant :
- Le code HTTP :
200
- Le type de contenu :
application/json
- Les données JSON de l'entité : les informations de Douglas Adams.
En cas d’erreur (par exemple, un identifiant invalide), un message tel que :
"Aucune donnée trouvée pour cet identifiant."
sera affiché.
wikidata-retrieve/
│
├── app/ # Dossier principal contenant l'application Flask
│ ├── app.py # Fichier principal de l'application Flask
│ ├── config.py # Fichier de configuration pour l'application
│ └── templates/ # Dossier contenant les fichiers HTML
│ └── wikidata.html # Template Jinja pour afficher les résultats
├── requirements.txt # Liste des dépendances Python
├── run.py # Fichier principal pour lancer l'application
└── README.md # Documentation du projet
- Ajouter des tests unitaires pour vérifier la validité des réponses API.
- Intégrer une meilleure gestion des erreurs pour les exceptions inattendues.
- Améliorer le rendu HTML avec du CSS ou un framework comme Bootstrap.
Sarah Ambec avec l'aide de ChatGPT4 pour le cours de Python Flask de Maxime Challon en M2 Archives TNAH de l'Ecole des Chartes