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…

Windows'da gnu/linux tadı – Cygwin

Cygwin isimli program sayesinde gnu/linux severler windows platformunda kendini yabancı hissetmeyecek. Bu yazıda kısaca Windows ortamında gnu/linux görünüm ve hissini sağlayan araçlar bütünü olan cygwin’den bahsedeceğim.

Cygwin isimli araçlar bütününü yeni keşfettim ve bir hayli de beğendim. Cygwin sayesinde windows altında bash, wget, python, rsync, openssh ve gnu/linux platformlarda kullanmaya alıştığımız daha nice programı kolaylıkla kurup kullanabiliyoruz.

Cgywin’in kurulumu oldukça basit. cygwin kurulum dosyasını indirdirip çalıştırdıktan sonra, kurulumun ilk safhasında kurulumu nereden yapacağımızı soruyor, bu aşamada çoğu durumda "Install from internet" (Internetten kur) seçeneğini seçmeniz gerekiyor. Daha sonra size, indirilen dosyaların nerede tutulacağını, ve cygwin’in kök dizininin neresi olacağını soruyor. Cygwin’in kök dizini, linux sistemlerdeki kök dizinin görevini görecek. Nereye yüklediğiniz çok fark etmeyecek, öntanımlı olarak C:\cgywin içerisine kuruyor. Kurulumu tamamladıktan sonra bu dizinin içinde, home, lib, bin gibi dizinler içinde, cgywin ile birlikte kurduğunuz programların dosyalarını bulabilirsiniz. Ama doğrudan bu dizindeki dosyaları kullanmayacaksınız. O kısıma geleceğiz. Dosya yollarını seçtikten sonra sizden bir url seçmenizi isteyecek. Bu linki Cgywin ile birlikte kullanılacak araçları seçmek için kullanacak. Herhangi birini seçebileceğiniz tahmin ediyorum.

Daha sonraki ekranda sizden program seçmenizi isteyecek, burada, kategorilerin altından istediğiniz programları seçip kuruluma devam edebilirsiniz. En son ekrandan masaüstüne kısayol eklemeyi unutmayın, gerekli olacak.

Kurulum bittikten sonra, masaüstüne veya programlar menüsüne eklediğiniz cgywin ikonuna tıklayarak cgywin kabuğuna erişebilirsiniz. Cgywin kabuk ile kurduğunuz bütün programlara bu kabuk üzerinden ulaşabileceksiniz.

Benim bunu yazdığım tarihde python kategorisi içerisinde setuptools yoktu. Setuptools yüklemek için cgywin kabuk içerisinde wget ile setuptools kurulum dosyasını indirdikten sonra, python ile çalıştırmanız gerekecek. Indirdiğiniz python betiği setuptools için gerekli egg dosyasını indirip kurma işini kendi halledecek. Bu aşamadan sonra PYPIdeki herhangi bir paketi indirip, setuptools’un içinde gelen easy_install ile rahatça kurabilirsiniz.

*[PYPI]: Python Package Index

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…