API:Article ideas generator/tr

Genel bakış
Bu eğitimde, İngilizce Vikipedi'de henüz bulunmayan çeşitli kategorilerden maddeler öneren bir madde fikirleri üretme uygulamasının bir demosunu alacaksınız. Kodu GitHub'dan indirin Toolforge'da uygulamaya göz atın Bu eğitim size bunu kullanarak nasıl yapacağınızı öğretecektir:


 * Python ve Flask çerçevesi
 * MediaWiki Eylem API'sinin Parse ve Links modülü

Bu uygulamayı oluşturmak için adım adım bir süreç:

1. adım: Python ve Flask geliştirme ortamını ayarlayın
Bir Flask uygulaması için Python geliştirme ortamını kurmak için Python'u kurmanız, sanal bir ortam oluşturmanız ve Flask'ı kurmanız gerekir.

Python2 ve Python3 arasındaki farklar hakkında buradan daha fazla bilgi edinin. Python3'ü yerel makinenize kurmak için, bu kurulum kılavuzlarında adım adım talimatları izleyin.

Uygulamayı oluşturmak için geliştirme ortamının nasıl kurulacağı aşağıda açıklanmıştır:

Basit bir statik sayfa oluşturun
Aşağıdaki kodu  içinde yerleştirin

Bu  kod satırını   klasörünün içindeki bir HTML dosyasına bırakın:

Ardından  komutuyla Flask uygulamanızı çalıştırın ve uygulamanızı tarayıcıda görüntülemek için   açın. Tarayıcı pencerenizde "Article ideas generator" görmeniz gerekir.

Uygulamanızı şekillendirin
Biraz uygulama stili yapalım. Bunu yapmak için, harici ve dahili bir stil sayfası yüklemek için bağlantı etiketleri ekleyin. Bu durumda harici stil sayfası, bir Google Font  için bir CSS dosyasının URL'sidir.

içindeki mevcut kodu aşağıdaki ile değiştirin:

Aşağıdaki kodu  içinde yerleştirin

Uygulama düzeni
$HOME/article-ideas-generator ├── templates/ │  └── articles.html ├── static/ │  └── static.css ├── articles.py └── venv/

3. adım: Sayfa bölümlerini Wikipedia:Requested articles üzerinden alın
Wikipedia:Requested articles üzerinden sayfa bölümlerini getirmek için  işlevine   içinde bir kod yazalım. Bu işlev, bağımsız değişken olarak sayfa adını alır ve sayfanın bölümlerini ayrıştırmak için Eylem API'sine  bir istekte bulunur. API çağrısı,  uç noktası ve sorgu dizesi parametrelerinden oluşur. Bazı temel parametreler şunlardır:


 * - bir sayfadaki içeriği ayrıştırmak için modül
 * - ayrıştırılacak sayfa başlığı
 * - hangi bilgi parçasının alınacağını söyler, bu örnekte bölümler

{{Note|1= For more information on the parse module, see {{ll|API:Parsing wikitext}}.

Next, extend the Python Flask route  in   to call the function defined above and also pass the results returned by the function to.

Place the following Jinja template code in. It dynamically renders an array of buttons with help from page sections data as categories obtained via the API above.

Place the following code in  for button styling.

Step 4: Get more sections based on user selection
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.

Step 5: Collect and display articles with missing links
Let's write some code in a  function in   to fetch around 20 articles with missing links on a page. This 1function 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

{{Note|1= For more information on the parse module, see {{ll|API:Links}}.

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.

{{Collapse top|$HOME/article-ideas-generator/articles.py}} {{Collapse bottom}}

{{Collapse top|$HOME/article-ideas-generator/static/style.css}} {{Collapse bottom}}

{{Collapse top|$HOME/article-ideas-generator/templates/articles.html}} {{Collapse bottom}}

Next steps

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