İçeriğe geç
Muslu Yüksektepe

pythome.com (Flask)

Python hata rehberi pythome.com'un Flask ile yeniden yazılmış sürümü.

Bu depo, Python hata mesajlarını bir araya getiren pythome.com sitesinin Flask ile yeniden yazılmış sürümünü içeriyor. Sitenin ilk sürümünü Django ve Jinja2 ile yazmıştım. 2016 yılının Nisan ayında, birkaç gün içinde aynı siteyi daha küçük ve yönetmesi daha kolay bir yapıya taşımak için Flask'a geçtim. Bu sürümde hata kayıtlarının yanına çeviri, yorum ve bir tarayıcı eklentisi de ekledim. Kod MIT lisansıyla paylaşılıyor.

Amaç

pythome.com'daki hata mesajları kütüphanelerin kaynak kodundan toplandığı için İngilizceydi. Benim asıl hedefim, bu mesajların ne anlama geldiğini Türkçe olarak da sunabilmekti. Bunun için kayıtların çevrilebileceği, okuyanların yorum bırakabileceği bir yapı gerekiyordu. Django sürümündeki ayarların ve uygulama yapısının bu küçük site için fazla olduğunu düşündüm. Tek dosyada toplanan bir Flask uygulaması hem okunması hem de sunucuda çalıştırılması açısından daha sade oldu.

Nasıl çalışır

Uygulamanın bütün yolları ilk.py dosyasında tanımlı. Ana sayfa Hatalar tablosundaki kayıtları listeliyor ve Türkçe çevirisi olan kayıtları öne alıyor. Arama kutusu jQuery Easy Autocomplete ile hata mesajlarını öneriyor; /ara/?q= adresi ise mesajın içinde geçen bir ifadeye göre arama yapıyor. Detay sayfaları ilk sürümle aynı /modül/hata-türü/mesaj/ adres yapısını kullanıyor, böylece daha önce dizine eklenmiş adresler değişmedi. Detay sayfasının altında aynı türdeki diğer hatalar listeleniyor ve Disqus ile yorum alanı açılıyor.

Çeviri için GitHub ile giriş ekledim. Ziyaretçi GitHub hesabıyla giriş yaptığında oturuma bir işaret yazılıyor ve /cevir/ sayfası açılıyor. Bu sayfada bir hata mesajının Türkçe, Almanca ve Hintçe karşılıkları girilebiliyor; form gönderildiğinde kayıt güncelleniyor. Giriş yapmamış biri çeviri sayfasını açmak isterse ana sayfaya yönlendiriliyor.

Depoda ayrıca ekle.crx adında küçük bir Chrome eklentisi var. Eklenti sağ tıklama menüsüne "Solve this error." seçeneğini ekliyor. Bir sayfada hata mesajını seçip bu seçeneğe tıklayınca seçilen metin pythome.com'un arama adresinde yeni bir sekmede açılıyor.

Öne çıkan özellikler

  • Sorgular parametreli yazıldığı için kullanıcıdan gelen arama metni doğrudan SQL'e eklenmiyor.
  • Ana sayfa ve detay sayfaları memcached ile kısa süreliğine önbelleğe alınıyor.
  • Hata kayıtları için Türkçe, Almanca ve Hintçe çeviri alanları var.
  • Çeviri yalnızca GitHub ile giriş yapan kullanıcılara açık.
  • Chrome eklentisi, herhangi bir sayfadaki hata mesajını tek tıkla sitede aratıyor.

Teknik altyapı

Uygulama Flask üzerinde çalışıyor ve MySQL'e MySQLdb ile bağlanıyor. GitHub ile giriş için Flask-GitHub eklentisini kullandım. Sunucuda Apache mod_wsgi ile çalıştırmak için ilk.wsgi dosyası hazır. Arayüz Bootstrap ve jQuery ile yazıldı; robots.txt ve sitemap.xml dosyaları da Flask üzerinden kök adreste sunuluyor.

Kategori
Web siteleri
Yıl
2016

Teknolojiler

  • Python
  • Flask

Bağlantılar

  • GitHub https://github.com/muslu/pythome.com_flask

Tüm projelere dön