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
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. 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