Python (eski yazılar, sayfa 1)

Django'da Abstract Modeller

Django'da abstract modellerin kullanımını merak edenlere yönelik, kısa ve öz bir yazı olacak bu.

Django'da birbirine çok benzer modeller oluşturacağınız zaman, bir adet abstract model oluşturup, daha sonra o abstract modeli kullanarak asıl modellerinizi oluşturabilirsiniz. abstract (tr: soyut) modellerin kendileri veritabanında bir tablo oluşturmak için kullanılmazlar, bunun yerine diğer modeller için temel oluştururlar. Bir örnekle inceleyelim:

Devamını oku…

Django ile Blog Geliştirme - Kurulum ve İlk ayarlar

Django, bir çırpıda uygulama geliştirmenizi, temiz ve sonuç odaklı kod yazmanızı destekleyen bir web çatısı (framework)'dür. Django iki temel sorunla başa çıkmaya çalışır: kısıtlı zaman ve deneyimli web geliştiricilerinin sıkı kalite standartları. Django yüksek performanslı, zarif web uygulamarını kısa zamanda geliştirebilme imkanı sunar.

Django'nun temel özellikleri arasında, zengin veritabanı erişim API'si, otomatik admin sayfası, şık url tasarımı, şablon sistemi, önbellek sistemi ve çoklu dil desteği sayılabilir.

Django siteleri arasında, Disqus, Instagram, Mozilla, OpenStack, Pinterest gibi büyük siteler yer alır.

Devamını oku…

Django'da pdb ile debug

Django’da geliştirdiğimiz web uygulamasının hata temizlemesini isterseniz pdb (python debugger) ile de yapabilirsiniz. Bu yazıda kısaca bunun nasıl yapıldığından bahsedeceğiz.

Django’nun kendine ait bir debug aracı var, ama django ile python debugger kullanmak isteyenler için, django-pdb var. django-pdb sayesinde django uygulamalarımızı pdb ile debug edebiliriz. django-pdb’nin kurulumu pip ile kolayca yapılabilir. pip install django-pdb komutu django-pdb’nin kurulumunu sizin için yapacaktır. *Nix kullananların kendi dağıtımlarına ait depoları kontrol etmelerinde de fayda var. Eğer depolarda bulabiliyorsanız, kendi paket yöneticinizle de kurabilirsiniz.

Devamını oku…

Python range ve xrange

Python 2 ile python 3 arasında range fonksiyonu farklılık gösteriyor. Python betiklerinde kullanılan bu fonksiyon, eğer doğru python yorumlayıcısında çalıştırılmazsa, istenildiğinden farklı davranabilir. Bu sorundan kurtulmak için, aşağıdaki yöntemi kullanıyorum.

Devamını oku…