API:Article ideas generator/de

Überblick
In dieser Anleitung wirst du eine Demo einer Artikel-Ideen-Generator-App erhalten, die Artikel aus unterschiedlichen Kategorien vorschlägt, die in der englischsprachigen Wikipedia noch nicht existieren.

Laden den Code von GitHub herunter Durchsuche die App auf Toolforge

In diesem Lernprogramm lernst du, wie du dies tun kannst:


 * Python- und Flask-Framework, und die Requests-Bibliothek
 * Parsing- und Link-Module der MediaWiki Action API

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



Schritt 1: Python- und Flask-Entwicklungsumgebung aufsetzen
Um die Python-Entwicklungsumgebung für eine Flask-Anwendung aufzusetzen, musst du Python installieren, eine virtuelle Umgebung erstellen und Flask und Requests installieren.

Lerne hier mehr über die Unterschiede zwischen Python2 und Python3. Um Python3 auf deiner lokalen Maschine zu installieren, befolge die Schritt-für-Schritt-Anleitung aus dem Installations-Leitfaden.

Die Entwicklungsumgebung, um die Anwendung aufzubauen, wird wie folgt aufgesetzt:



Schritt 2: Eine einfache Flask-Anwendung erstellen


Eine einfache statische Seite rendern
Setze den folgenden Code in  ein

Setze die Code-Zeile Article ideas generator in eine HTML-Datei im Ordner  ein:

Führe deine Flask-App mit dem Befehl  aus und öffne , um dir deine App im Browser anzusehen. Du solltest "Article ideas generator" in deinem Browser-Fenster sehen können.



Gestalte deine App
Lass uns die App gestalten. Um dies zu tun, füge Link-Markierungen hinzu, um externe und interne Stylesheets zu laden. Externe Stylesheets sind in diesem Fall die URL einer CSS-Datei für die Schriftart.

Ersetze den vorhandenen Code in  durch folgendes:

Setze den folgenden Code in  ein



Anwendungslayout
$HOME/article-ideas-generator ├── templates/ │  └── articles.html ├── static/ │  └── style.css ├── articles.py └── venv/



Schritt 3: Erhalte Seitenabschnitte aus Wikipedia:Requested articles
Lass uns Code in einer -Funktion in   schreiben, um Seitenabschnitte aus Wikipedia:Requested articles zu erhalten. Diese Funktion nutzt den Seitennamen als Argument und stellt eine -Abfrage an die Action API, um Abschnitte der Seite zu parsen. Der API-Anruf besteht aus einem Endpunkt  und Parametern der Abfrage-Zeichenkette. Einige der Schlüsselparameter sind:


 * - Modul, um Inhalt einer Seite zu parsen
 * - Zu parsender Seitentitel
 * - Legt fest, welcher Informationsteil erhalten werden soll, in diesem Beispiel sind es Abschnitte

Erweitere als nächstes die Python-Flask-Route  in , um die oben definierte Funktion anzurufen und die von der Funktion ausgegebenen Ergebnisse an   zu übergeben.

Setze den folgenden Jinja-Vorlagencode in  ein. Er rendert mithilfe der Daten zu Seitenabschnitten als Kategorien, die oben über die API erhalten wurden, dynamisch eine Reihe von Schaltflächen.

Platziere den folgenden Code in, um die Schaltflächen zu gestalten.



Schritt 4: Weitere Abschnitte anhand der Auswahl des Benutzers erhalten
Erhalte aus Wikipedia:Requested articles Unterabschnitte, basierend auf der Kategorie oder dem Abschnitt, den der Benutzer im vorherigen Schritt ausgewählt hat. Erweitere die Python-Flask-Route  in , um POST-Abfragen zu nutzen. Du kannst dies tun, indem du  und   zur  -Argumentliste im Route-Decorator hinzufügst. Du kannst dann die in einem -Format verfügbare Kategorien-Auswahl aus dem  -Objekt erhalten, das zur weiteren Verarbeitung an die  -Funktion übergeben wird.



Schritt 5: Sammle Artikel mit fehlenden Links und zeige sie an
Lass uns Code in einer -Funktion in   schreiben, um 20 Artikel mit fehlenden Links auf eine Seite zu erhalten. Diese Funktion nutzt den Seitennamen als Argument und stellt eine -Abfrage an die Action API, um alle Links auszugeben, die auf der angegebenen Seite eingebunden sind. Durch weitere Extraktion kannst du die Links erhalten, die fehlen und noch nicht in der englischsprachigen Wikipedia existieren. Der API-Anruf besteht aus einem Endpunkt  und Parametern der Abfrage-Zeichenkette. Einige der Schlüsselparameter sind:


 * - Modul zur Informationsabfrage
 * - Seitentitel, um Links zu sammeln
 * - Das Submodul  des Anfrage-Moduls wird als Generator-Modul genutzt, um eine Reihe von Links zu erhalten, die auf einer Seite eingebunden sind
 * - Anzahl der zu erhaltenden Links

Erweitere als nächstes den -Block, der die  -Methode in der  -Route in   betrifft, um die  -Funktion anzurufen, wenn die Seite, von der die Abfrage erhalten wird, ein  -Typ ist.

Setze den folgenden Jinja-Vorlagencode in  ein. Er rendert mithilfe der Daten, die oben über die API erhalten wurden, dynamisch eine Liste von Links.

Sieh dir den vollständigen Python-, CSS- und HTML-Code an.



Nächste Schritte

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



Siehe auch

 * Flask-Anleitungen
 * Flask-Anleitungen
 * Flask-Anleitungen