API:Holidays viewer/tr

Genel bakış
Bu eğitim, Vikipedi'den belirli bir tarihe ait tatilleri ve kutlamaları getiren bir demo uygulamasının nasıl oluşturulacağını ve yeni tatiller eklemek için oturum açma seçeneğini kapsar.

Kodu GitHub'dan indirin Toolforge'da uygulamaya göz atın

Demo uygulamasını oluşturmak için kullanılan araçlar ve teknolojiler şunlardır:


 * Python 3 ve Flask, bir Python çerçevesi.
 * jQuery ve Bootstrap. They are loaded from Wikimedia Toolforge for privacy reasons.
 * MediaWiki Eylem API modülleri:, ve.

A step-by-step process for building this application


1. adım: Python ve Flask geliştirme ortamını ayarlayın
Python, çoğu Linux dağıtımında önceden yüklenmiş olarak gelir. Diğer işletim sistemleri için kurulum talimatları için Python başlangıç ​​kılavuzuna bakın.

çalıştırarak Flask'ı kurun. Pip'iniz yoksa, resmi Pip web sitesinden alın



2. adım: Basit bir Flask uygulaması oluşturun
Ana dizininizde, tüm uygulamanın dosyalarını içerecek  adlı bir klasör oluşturun. Klasörün içinde  adlı bir dosya oluşturun ve aşağıdaki kodu içine yerleştirin:

komutunu kullanarak uygulamayı çalıştırın ve tarayıcınızda  açın. "Holidays and observances" görüntülendiğinizi görmelisiniz.



3. adım: Temel düzeni oluşturun
Uygulamanın dört sayfası olacaktır: ana sayfa, bir arama sayfası, bir giriş sayfası ve bir ekleme sayfası. Her sayfanın bazı ortak öğeleri olacaktır, bu nedenle bu öğeleri içermek için  adında bir temel düzen dosyası oluşturmamız gerekir.

Bir öğeye belirli bir CSS stilini uygulamak için Bootstrap sınıfları, ekle, ara ve geri ok simgeleri için Materialize simgeleri ve temel düzeni diğer sayfalara genişletmek ve Python'dan HTML'ye değişkenleri aktarmak için Jinja kullandığımızı unutmayın.

Diğer sayfalar aşağıdaki  kodu kullanarak uzatacak:



4. adım: Tatilleri listeleyin
Uygulamanın kök URL'si, belirli bir tarihteki tatilleri listeleyen  işlevini tetikleyecektir.

İşlevde ve uygulama genelinde,  listelenecek tatillerin tarihini,   sayfanın başlığını,   ise listelenecek tatilleri içeren html'yi ifade eder. Ayrıca, şablonlar dizininden belirli bir html dosyası oluşturan  işlevini de kullanacağız. İşleve eklenen diğer argümanlar html dosyasına aktarılan değişkenlerdir.

içinde,  ile aşağıdaki kodla güncelleyin:



Bugünün tarihini alın
Tarih belirtilmezse, bugünün tarihi için tatilleri listeleriz. Python'un datetime modülünü kullanarak bugünün tarihini almak için modülü  ile içe aktarın ve ardından aşağıdaki işlevi oluşturun:

İşlevini  cinsinden çağırın:



Listelenecek tatilleri alın
Tarihi aldığımızda, o tarih için tatilleri alırız. Vikipedi'nin her tarih için bir sayfası vardır ve tatiller "Holidays and observances" başlıklı bir bölümün altındadır. Tatilleri görmek için bölüm numarasını ve o bölüm numarasındaki içeriği almamız gerekiyor.

kullanarak bölüm numarasını almak için bir işlev oluşturun:

Bu bölümdeki tatilleri kullanarak da almak için   adlı bir işlev oluşturun, ardından   içindeki işlevleri çağırın:



Tatil bağlantılarını güncelleyin
Döndürülen tatillerin HTML'si, bu tatilleri gösteren dahili bağlantılar içerir, ör. " ". Uygulamamızda harici bağlantılar yapabilmek ve yeni bir sekmede açmalarını sağlamak için jQuery kullanarak bu bağlantıların başına " " eklememiz gerekiyor. Bunu yapmak için, aşağıdaki kodu  ekleyin:

Ardından  ile jQuery ekleyin:



5. adım: Başka tarihlerdeki tatilleri arayın
Diğer tarihlerdeki tatilleri öğrenmek için, aranacak ayı ve günü toplayan bir formu görüntülemek üzere bir arama rotası oluşturun:

Arama formu gönderildikten sonra,  girilen tarih olacak şekilde güncelleyin. Bunu yapmak için, aşağıdaki kodu  ekleyin:



6. adım: Tatil ekleyin
Yeni bir tatil ekleyeceğimiz sayfa anonim kullanıcılar tarafından yapılan düzenlemelere karşı korunmaktadır, bu nedenle önce API:Oturum aç#clientlogin kullanarak oturum açmamız gerekir.

Tatil eklemek için ile tatilin tarihini ve açıklamasını içeren bir istek gönderin. Düzenleme, Test Vikipedi'deki bu sayfaya yeni tatiller ekler: Sandbox/Holidays_and_observances. Bu, İngilizce Vikipedi'ye test tatillerinin eklenmesini önlemek içindir.

Tatil eklendikten sonra, eklenen tatillerin de gösterileceği ana sayfaya yönlendirin ve onları gerçek tatillerden ayırmak için kalın olarak biçimlendirin. Test tatillerini gerçek tatillerin yanında getirmek için  güncelleyin:



7. adım: Uygulama şekillendirme
Uygulamamıza daha fazla stil eklemek için  adında bir stil sayfası oluşturun ve   ekleyerek   üzerinden ona bağlantı verin.



Uygulama düzeni
Bu noktada, uygulamanızın yapısı şu şekilde olmalıdır:

$HOME/holidays-viewer ├── templates/ │  └── add.html └── index.html └── layout.html └── login.html └── search.html ├── static/ │  └── style.css └── update-links.js ├── app.py

ve  olmak üzere:





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

 * — MediaWiki Eylem API için hızlı başlangıç ​​kılavuzu.
 * — Bir sayfanın içeriğini ayrıştırır ve çıkışı alır.
 * — Bir sayfayı düzenler.
 * — Bir vikiye oturum açmaya izin verir.