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.
 * MediaWiki Eylem API modülleri:, ve.

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 [$ url 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ı, 3 $ 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 öğrenin
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. This is to prevent adding test holidays to English Wikipedia.

After the holiday is added, redirect to the homepage where the holidays added will also be shown, and formatted in bold to differentiate them from the real holidays. To fetch the test holidays alongside the real holidays, update :

Step 7: Styling the app
To add more style to our app, create a stylesheet named  and link to it from   by adding.

Application layout
At this point, the structure of your app should be:

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

With  and   being:



Next steps

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