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

Ardından, yukarıda tanımlanan işlevi çağırmak ve ayrıca işlevin döndürdüğü sonuçları  ile geçirmek için   Python Flask yolunu   olarak genişletin.

Aşağıdaki Jinja şablon kodunu  alanına yerleştirin. Yukarıdaki API üzerinden elde edilen kategoriler olarak sayfa bölümleri verilerinin yardımıyla dinamik olarak bir dizi düğme oluşturur.

Düğme stili için aşağıdaki kodu  değerine yerleştirin.

4. adım: Kullanıcı seçimine göre daha fazla bölüm alın
Kullanıcının önceki adımda seçtiği bir kategori veya bölüme bağlı olarak, Wikipedia:Requested articles üzerinden alt bölümleri getirin. POST isteklerini işlemek için Python Flask rotasını  olarak   içinde genişletin. Bunu, yol dekoratöründeki  bağımsız değişken listesine hem   hem de   ekleyerek yapabilirsiniz. Daha sonra  biçiminde mevcut kategori seçimini   nesnesinden elde edebilirsiniz, bu daha ileri işlemler için   işlevini geçirilir.

5. adım: Bağlantıları eksik olan maddeleri toplayın ve görüntüleyin
Bir sayfadaki eksik bağlantıları olan yaklaşık 20 madde getirmek için  işlevine   cinsinden bir kod yazalım. Bu 1function, bağımsız değişken olarak sayfa adını alır ve Eylem API'sine  bir istekte bulunur ve sağlanan sayfaya gömülü tüm bağlantıları döndürür. Daha fazla çıkarımdan, eksik olan ve henüz İngilizce Vikipedi'de bulunmayan bağlantıları edinebilirsiniz. API çağrısı,  uç noktası ve sorgu dizesi parametrelerinden oluşur. Bazı temel parametreler şunlardır:


 * - bilgi sorgulama modülü
 * - bağlantıları toplamak için sayfa başlığı
 * - 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.