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
 * 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 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:

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 einen Google-Font.

Ersetze den vorhandenen Code in  durch folgendes:

Setze den folgenden Code in  ein

Anwendungslayout
$HOME/article-ideas-generator ├── templates/ │  └── articles.html ├── static/ │  └── static.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
Based on a category or section user chooses in the previous step, fetch subsections from Wikipedia:Requested articles. Extend the Python Flask route  in   to handle POST requests. You can do so by adding both  and   in the   argument list in the route decorator. You can then obtain category selection available in a  format from the   object, which is passed to   function for further processing.

Schritt 5: Sammle Artikel mit fehlenden Links und zeige sie an
Let's write some code in a  function in   to fetch around 20 articles with missing links on a page. This function takes page name as an argument and makes a  request to the Action API and return all links embedded on the provided page. From further extraction, you can obtain those links that are missing and don't yet exist on English Wikipedia. API call consists of an endpoint  and query string parameters. Some of the key parameters are:


 * - module to query information
 * - page title to collect links
 * - query module's submodule  used as a generator module to get a set of links embedded on a page
 * - number of links to fetch

Next, extend the  block concerning the   method in   route in   to call the   function if the page from which the request is obtained is of type.

Place the following Jinja template code in. It dynamically renders a list of links with help from the data obtained via the API above.

View complete Python, CSS and HTML code.

Nächste Schritte

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

Siehe auch

 * Twilio Python quickstart
 * Flask tutorials
 * Twilio Python quickstart
 * Flask tutorials