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 Article ideas generator 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ığı
 * - sorgu modülünün alt modülü, bir sayfaya gömülü bir dizi bağlantı almak için üretici modülü olarak kullanılır
 * - alınacak bağlantı sayısı

{{Note|1=Ayrıştırma modülü hakkında daha fazla bilgi için {{ll|API:Links}} sayfasına bakın.

Ardından, talebin alındığı sayfa  türündeyse   işlevini çağırmak için   içindeki   yolundaki   yöntemiyle ilgili   bloğunu genişletin.

Aşağıdaki Jinja şablon kodunu  içine yerleştirin. Yukarıdaki API üzerinden elde edilen veriler yardımıyla dinamik olarak bir bağlantı listesi oluşturur.

Python, CSS ve HTML kodunun tamamını görüntüleyin.

{{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}}

Sonraki adımlar

 * MediaWiki API'sini kullanarak geliştirdiğiniz bir demo uygulamasına bu kod örnekleri deposuna katkıda bulunun.

Ayrıca bakınız

 * Twilio Python hızlı başlangıcı
 * Flask eğitimleri
 * Twilio Python hızlı başlangıcı
 * Flask eğitimleri