Dökümantasyon niteliğindeki bu blog daha fazla devam etmemektedir.

Django kitabına http://www.djangobook.com/ linkinden ulaşılabilir.

Çevirileri devam ettirmek isteyenler, http://0nur.net/ adresinden bana ulaşabilirler.

20 Ağustos 2009 Perşembe

Kurulumun Test Edilmesi

Yükleme-sonu pozitif dönüşler için, her nasıl yüklediyseniz, yüklemenizi test etmeye biraz vakit ayıralım. Komut satırında başka bir dizine geçin (django dizinin barındırmayan bir dizine) ve Python yorumlayıcısını python diyerek başlatın. Eğer yüklemeniz başarılıysa, django modülünü dahil edebilmeniz gereklidir.

>>> import django
>>> django.VERSION
(1, 1, 0, ‘final’, 1)

İnteraktif Yorumlayıcı Örnekleri

Python interaktif yorumlayıcısı, interaktif Python programları yazmanızı sağlar. Başlatmak için, komut satırından python komutunu çalıştırın.

Bu kitap boyunca, örnekleri Python interaktif yorumlayıcısı oturumlarından veriyoruz. Yorumlayıcı satırı için yapılmış bu örneklerin başındaki üç büyüktürden (>>>) anlayabilirsiniz. Eğer örnekleri bu kitaptan kopyalıyorsanız, büyüktür işaretlerini kopyalamayın.

İnteraktif yorumlayıcı içerisindeki çok satırlı deyimler üç nokta (...) ile başlamaktadır. Örneğin:

>>> print """Bu üç noktayı
... çıkartan bir
... karakter dizisidir."""
Bu üç noktayı
çıkartan bir
karakter dizisidir.
>>> def fonksiyonum(değer):
...     print değer
>>> fonksiyonum('merhaba')
merhaba

Bu üç nokta Python kabuğu tarafından eklenmektedir ve bizim girdimizin bir parçası değildir. Yorumlayıcının güvenli kullanılması için buraya ekledik. Eğer örneklerimizi buradan kopyalıyorsanız, bu noktaları kopyalamayın.

Django Kurulumu II

"Trunk" Sürümünün Kurulumu

Django'nun son ve geliştirilmekte olan sürümününe trunk diyoruz ve bu sürüm Django'nun subversion deposunda bulunmaktadır. Eğer sadece istediğiniz bir özellik bu sürümdeyse veya Django'ya katkıda bulunmak istiyorsanız bu sürümü yüklemelisiniz.

Subversion ücretsiz, açık kaynak kodlu ve Django takımı tarafından Django kod-tabanını yönetmek için kullanılan bir sürüm kontrol sistemidir. Subversion istemcisini kullanarak, Django geliştiricileri tarafından gönderilen yenilikleri ve en son Django kaynak kodlarını indirebilir ve istediğiniz zaman elinizdeki kodları güncelleyebilirsiniz.

Unutmayın ki trunk sürümünü kullanırken herhangi bir bozukluk olmayacağının bir garantisi yoktur. Söylediğimmiz gibi bazı Djago takımının bazı üyeleri ürün sitelerini trunk sürümüyle çalıştırmaktadır ve kararlı tutmaya özen göstermektedirler.

Django trunk sürümünü indirmek için şu adımları uygulayınız:

  1. Subversion istemcisinin kurulu olduğundan emin olun. Programı http://subversion.tigris.org/ adresinden ücretsiz olarak indirebilirsiniz ve http://svnbook.red-bean.com/ adresinde hazırlanmış dökümanları okuyabilirsiniz.
  2. Trunk versiyonunu şu komutu kullanarak indirin:
    svn co http://code.djangoproject.com/svn/django/trunk djtrunk
  3. Python kurulumunun site-packages dizinini bulun. Bu dizin genellikle /usr/lib/python2.4/site-packages gibi bir dizindir. Eğer dizinin nerede olduğuna dair bir fikriniz yoksa aşağıdaki komutu, komut satırında çalıştırın:
    python -c 'import sys, pprint; pprint.pprint(sys.path)'
    Çıkan sonuçlar içerisinde site-packages dizini de olmalıdır.
  4. site-packages dizini içerisinde django.pth isimli bir dosya oluşturun ve bu dosyaya djtrunk dizininin tam yolunu girin. Örneğin dosyanızın içeriği şöyle olmalıdır:
    /home/ben/kod/djtrunk
  5. djtrunk/django/bin dizinin sistem PATH'ı na ekleyin. Bu dizin django-admin.py gibi yönetim araçlarını barındırmaktadır.

İpucu:

Eğer .pth dosyalarını yeni görüyorsanız, daha fazla bilgiyi http://www.djangoproject.com/r/python/site-module/ adresinde bulabilirsiniz.

Django'yu Subversion ile indirip yukarıdaki adımları tamamladıktan sonra, python setup.py install komutunu çalıştırmanıza gerek yoktur, bu işlemi zaten elinizle hallettiniz!

Django trunk sürümünün sıklıkla bug güncellemesi ve yeni özellikler kazandırılması nedeniyle, kodları arada bir güncellemek isteyebilirsiniz. Kodları güncellemek için sadece svn update komutunu djtrunk dizininde çalıştırın. Komut çalışırken, subversion http://code.djangoproject.com/ ile bağlantı kurup, değişen Django kodlarını algılayacaktır ve sizin local sürümünüzde değişiklik varsa uygulayacaktır. İşte bu kadar.

Son olarak eğer trunk kullanıyorsanız, hangi sürümü kullandığınızı bilmeniz gerekmektedir. Versiyon numarasını bilmek, yardıma ihtiyacınız olduğunda yardım alırken veya çatıya yenilikler gönderirken önem taşımaktadır. Bu durumlarda, insanlara trunk sürümünü söylemelisiniz, ayrıca bu; kullandığınız "revizyon numarası" veya "değişiklik sürümü"dür. Revizyon numarasını öğrenmek için "svn info" komutunu djtrunk dizininde çalıştırın ve "Revision:" satırına bakın. Bu sayı Django'nun bug yamalarında, yeni özelliklerinde, dökümantasyon yenilemelerinde ve bunun gibi her değişikliğikte artar. Django topluluğunun bazı üyeleri arasında, "Django'yu [revizyon numarası]'ndan beri kullanıyorum" demek bir onur meselesidir.

19 Ağustos 2009 Çarşamba

Django Kurulumu I

Django'nun iki ayrı sürümü kullanılabilir durumdadır: son resmi dağıtılan sürümü ve sürekli geliştirme aşamasında olan "trunk" sürümü. Yüklemek istediğiniz sürüm seçimi, önceliklerinize bağlıdır. Kararlı ve test edilmiş bir Django sürümü mü istersiniz yoksa son özellikleri barındıran ve muhtemelen Django'ya yardım edebileceğiniz, kararlılıktan uzak olanı mı?

Resmi dağıtılan sürümde kalmanızı öneriyoruz, fakat "trunk" geliştirilme sürümünün de var olduğunu bilmeniz önemlidir, çünkü dökümanda ve topluluktaki üyelerin ağzından sık sık bu sürümün bahsedildiğini duyacaksınız.

Resmi Dağıtımın Yüklenmesi

Resmi sürüm numaraları, 1.0.3 veya 1.1 gibi, ve en son sürümü her zaman http://www.djangoproject.com/download/ adresinde bulunur.

Eğer Django paketi olan bir Linux dağıtımı kullanıyorsanız, dağıtımın sağladığı paketi kullanmak iyi bir fikirdir. Bu sayede, güvenlik güncellemelerini, sistemin geri kalanda olduğu gibi paketlerle yapabilirsiniz.

Eğer paketlenmiş bir sürüme ulaşamıyorsanız, çatıyı indirip kendiniz kurabilirsiniz. Bunu yapmak için önce, Django-1.0.2-final.tar.gz gibi bir isme sahip arşivi indirmeniz gerekli. (Dosyayı indirdiğiniz dizin önemli değildir, Django'nun yükleme süreci dosyaları doğru yere atacaktır.) Ardından dosyaları çıkarın ve bir çok Python kütüphanesine yapıldığı gibi: setup.py install komutunu çalıştırın.

İşlem Unix sistemlerde şu şekilde yapılmaktadır:

  1. tar xzvf Django-1.0.2-final.tar.g
  2. cd Django-*
  3. sudo python setup.py install

Windows sistemlerde, .tar.gz dosyalarını çıkarmanız için 7-zip (http://www.djangoproject.com/r/7zip/) kullanmanızı tavsiye ediyoruz. Dosyayı çıkardıktan sonra, komut satırını açıp, yönetici yetkileriyle aşağıdaki komutu, Django'yu çıkardığınız dizinde çalıştırın:

python setup.py install

Merağınızı gidermek adına: Django dosyaları, Python yüklemesinin site-packages dizinine, yani Python'un 3. parti kütüphanelerinin bulunduğu dizine yükleyecektir. Genellikle bu dizin şöyledir: /usr/lib/python2.4/site-packages.

18 Ağustos 2009 Salı

Python Kurulumu

Django tamamen Python ile yazıldığı için, çatıyı yüklemeden önce Python'un kurulu olduğundan emin olun.

Python Sürümleri

Django'nun çekirdeği Python 2.3 den 2.6 ya kadar olan sürümlerde çalışmaktadır. Django'nun opsiyonel GIS (Coğrafik Bilgi Sistemleri) desteği Python 2.4 den 2.6 sürümü ile çalışmaktadır.

Eğer hangi Python sürümünü kuracağınızdan emin değilseniz, 2.x serisinin en sonuncusunu: 2.6 sürümünü seçin. Buna rağmen Django 2.3'den 2.6 ya kadar olan Python sürümlerinin hepsinde aynı şekilde çalışacaktır, Python'un son sürümleri performans bakımından iyileştirmeler ve uygulamalarınız içinde kullanabileceğiniz, dil için yeni özellikler barındırmaktadır. Artı olarak kullanmak isteyebileceğiniz Django eklentileri Python 2.3'den yukarısında çalışmaktadır, yani Python'un son sürümünü kullanmak seçeneklerinizi çoğaltacaktır.

Django ve Python 3.0

Bu yazı yazılırken, Python 3.0 yayımlanmıştı, fakat Django onu şuan desteklemiyor. Python 3.0 dil içerisinde bir dizi geriye uyumlu olmayan değişikliklerle geldi ve sonuç olarak sanıyoruz ki Python kütüphaneleri ve Django'nun da dahil olduğu çatıların Python 3.0'ı yakalaması bir kaç yıl alacaktır.

Eğer Python'da yeni iseniz ve Python 2.x mi yoksa Python 3.x öğrenmeliyim diye merak ediyorsaniz, önerimiz Python 2.x de kalmanız yönündedir.

Kurulum

Eğer Linux veya Mac OS X de iseniz, muhtemelen Python zaten yüklemiştir. Komut satırına (veya OS X içerisinde; Uygulamalar/Araçlar/Terminal), python yazın. Eğer şunun gibi bir şey görüyorsanız, Python yüklü demektir.

Python 2.4.1 (#2, Mar 31 2005, 00:05:10)
[GCC 3.3 20030304 (Apple Computer, Inc. build 1666)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Diğer türlü Python'u indirmek ve kurmak zorundasınız. Hızlı ve kolaydır, detaylı anlatım http://www.python.org/download/ adresinde bulunabilir.

Başlarken

Django yüklemesi, modern Web geliştirme ortamlarının bir çok parçadan oluşması nedeniyle, çok adımlı bir süreçtir. Bu bölümde, çatıyı ve bir kaç bağımlılığını nasıl yükleyeceğimizi ele alacağız.

Django'nun sadece Python kodu olması nedeniyle, Python'un çalıştığı heryerde çalışabilir, buna bazı cep telefonları da dahildir! Fakat bu bölümde yaygın Django kurulumlarını ele alacağız. Varsayıyoruz ki bir masaüstü/dizüstü makinesinde veya bir sunucuya kurulum yapacaksınız.

Sonra, 12. Bölüm'de, Django'yu nasıl ürün sitesi olarak çıkaracağınızı ele alacağız.

17 Ağustos 2009 Pazartesi

Bu Kitabı Nasıl Okuyacaksınız?

Bu kitabı yazarken, okunabilirlik ve başvuru kaynağı olma arasında, okunabilirliğe özen göstererek denge kurmaya çalıştık. Bu kitaptaki amacımız, baştan başlayıp, sizi bir Django uzmanı haline getirmektir ve inanıyoruz ki Django'nun özelliklerinin bir kataloğu olmaktansa sunduğumuz bol miktardaki örneklerle en iyi şekilde öğreneceksiniz. (Ne demişler, alfabeyi zar zor öğreten birinden bir dili öğretmesini bekleyemezsin.)

Bu kafayla yazdığımız kitabı Bölüm 1 den Bölüm 12'ye kadar sırayla okumanızı öneriyoruz. Django'nun nasıl kullanıldığının anlatıldığı bu bölümleri bir kere okuduktan sonra, Django ile Web siteleri yapmaya ve harekete geçirmeye başlayabileceksiniz. Özellikle, 1. Bölümden 7. Bölüme "temel dersler," 8. Bölümden 11. Bölüme Django'nun daha gelişmiş kullanımı ve 12. Bölümde uygulamanın dağıtımı konularına değinilmiştir. Kalan bölümler, 13 den 20 ye, Django'ya özgü özellikler anlatılmıştır ve istendiği sıra ile okunabilir.

Ekler başvuru kaynağı içindir. Onlar, http://www.djangoproject.com/ da yer alan özgür dökümanlardır ve Django'nun bazı bölümlerinin ne yaptığını anlamak, sözdizimi ve özet kısımları okumak için tekrar bu sayfalara döneceksiniz.

Gerekli Programlama Bilgisi

Bu kitabın okuyucuları, basit programlama ve nesne tabanlı programlama bölümlerini, kontrol yapılarını (örneğin: if, while, for... gibi), veri yapıları (listeler, hash ve dictionary-ler), değişkenler, sınıflar ve objeleri anlayacak seviyede programlama bilmelidirler.

Bu kitabı anlamak, Web geliştirme deneyimi içerisinde beklediğiniz üzere yararlıdır fakat gerekli değildir. Kitap süresince, Web geliştiriciliği süresince takılmış geliştiriciler için, en iyi örnekleri sunmayı denedik.

Gerekli Python Bilgisi

Temelinin olduğu gibi Django, Python programlama dili ile yazılmış bir dizi kütüphanenin oluşturduğu bir koleksiyondur. Django ile bir site geliştirmek için, bu kütüphaneleri kullanarak Python kodu yazacaksınız. Django'yu öğrenirken, ardından, Python ile nasıl program yazılacağını ve Django kütüphanelerinin nasıl çalıştığını anlamak önemlidir.

Eğer Python ile programlama deneyiminiz varsa, onu irdelemek zorunda değilsiniz. Django kodları genelde çok fazla "sihir" içermezler (örneğin anlatması ve anlaması zor olan programlama hileleri). Sizin için Django'yu öğrenmek sadece Django yollarını ve API'lerini öğrenmekten ibaret olacaktır.

Eğer Python ile programlama deneyiminiz yoksa, bunu gidermelisiniz. Python'un öğrenmesi çok kolay ve kullanımı çok eğlencelidir! Bu kitap Python rehberini içermemekte olup, özellikle Django kodları anlamsız geldiğinde karşılaşılan Python özelliklerini ve fonksiyonlarını vurgulamıştır. Hâlâ, http://docs.python.org/tut/ adresinde yer alan resmi Python rehberini okumanızı öneriyoruz. Ayrıca, Mark Pilgrim'in yazmış olduğu, http://www.diveintopython.org/ adresinde yer alan ve Apress tarafından yayımlanmış, özgür Pyhon'a Dalış kitabını da öneriyoruz.

Gerekli Django Sürümü

Bu kitap Django 1.1'i ele almıştır.

Django geliştiricileri "ana sürümler" için geriye uyumluğu devam ettirmektedir. Bu demek oluyor ki, eğer Django 1.1 ile bir uygulama geliştiriyorsanız, uygulamanız 1.2, 1.3, 1.9 gibi "1." ile başlayan sürüm numaralarında çalışacaktır.

Django 2.0'a vurduğunda, uygulamalarınız tekrar yazılmalıdır, fakat 2.0'a kadar daha çok yol vardır. Referans olması için, 1.0 sürümünün çıkması 3 yıldan uzun sürmüştür. (Bu Python dilinin uyumluluk poliçesine benzemektedir: Python 2.0 ile yazılmış kod, Python 2.6 ile çalışmasına karşın, Python 3.0 için gerekli değildir.)

Bu göze alındığında kitap 1.1'i kapsamaktadır, size iyi bir süre hizmet edecektir.

Yardım Alımı

Django'nun en yararlı taraflarından biri de, yardımsever bir kullanıcı topluluğuna sahip olmasıdır. Herhangi bir konuda, — yüklemeden, uygulama tasarımına, veritabanı tasarımına, yayılmasına — kadar sorularınızı çekinmeden sorabilirsiniz.

  • django-users mail listesi binlerce Django kullanıcısının bulunduğu, sorular sorup cevaplandığı yerdir. http://www.djangoproject.com/r/django-users adresinden ücretsiz üye olabilirsiniz.
  • Django IRC kanalı Django kullanıcılarının birbirlerine gerçek zamanlı yardım ettiği bir sohbet ortamıdır. Freenode IRC ağına bağlanarak #django kanalına girin.

Sırada ne Var?

Sonraki bölümde; Django ile başlangıç yapıp, yüklenmesi ve başlangıç kurulumunu ele alacağız.

Django'nun Tarihi

Daha fazla koda dalmadan önce Django'nun tarihini açıklamak için biraz zaman ayırmalıyız. Bunu geçtikten sonra kısayolları tamamen anlamanız için, işleri nasıl kısayolsuz yapacağınız üstünde tekrar duracağız. Django'nun neden yaratıldığını anlamak, Django'nun tarihini anlamaya ve nasıl çalıştığını anlamaya benzerdir.

Eğer bir süredir Web uygulamaları yapıyorsanız, daha önce verdiğimiz CGI örneği size tanıdık gelmiştir. Klasik web geliştiricisinin yolu şöyle bişeydir:

  1. Sıfırdan bir Web uygulaması yazımı.
  2. Sıfırdan başka bir Web uygulaması yazımı.
  3. İlk adımdaki uygulamanın ikinci adımdaki uygulamaya çok benzer olduğunun fark edilmesi.
  4. İkinci uygulama ile birinci uygulamanın kodlarının birbirine paylaştırılması.
  5. 2. ve 4. adımların bir çok kez tekrar edilmesi.
  6. Bir çatının (framework) var olduğunun keşfedilmesi.

İşte bu tam olarak Django'nun nasıl oluştuğudur.

Django, Lawrence Kansas USA içerisinde yer alan bir Web geliştirme ekibi tarafından, gerçek-dünya uygulamaları baz alınarak büyümüştür. 2003'ün 3. çeyreğinde, Lawrence Journal-World gazetesinde yazar olan Adrian Holovaty ve Simon Willison'un uygulamalarını geliştirmek için Python kullanmaya başladıklarında Django doğmuştur.

The World Online takımı bir kaç local haber sitesinin bakımından sorumluyken, yazarlıklarının sonlarında bir geliştirme ortamı yaratmayı başardılar. LJWorld.com, Lawrence.com ve KUsports.com dahil olmak üzere, gazetecilik (ve yönetim) özelliğinin istenmesi üzerine, tüm bir uygulama günler ve saatler içerisinde çok hızlı bir şekilde tamamlandı. Böylece, Simon ve Adrian zaman tasarrufu sağlayan Web geliştirme çatılarını ihtiyaçları olmadan da olsa yarattılar. Bu yetiştirme tarihi çok yakın olan projelerin yapılmasının ve bakımını tamamlamanın tek yoluydu.

2005 yazında, geliştirildikten sonra bir çok World Online sitesinin güçlendirildiği çatıyı, Jacob Kaplan-Moss'un da katıldığı takım tarafından açık kaynak kodlu bir yazılım olarak dağıtılma kararı alındı. Temmuz 2005'de, jazz gitaris Django Reinhardt'ın adından esinlenilerek Django ismiyle dağıtıldı.

Bundan bir kaç yıl sonra yani günümüzde Django; evrenin her bir tarafından 10 binlerce kullanıcısı ve katkıcısı olan iyi-kurulmuş bir açık kaynak projesi haline gelmiştir. Orijinal iki World Online geliştiricii ("Hayatın Yardımsever Dikdatörleri," Adrian ve Jacob) hâlâ çatının büyümesi için ana rehberi sağlamaktadır, fakat daha çok takım çalışması ile büyümektedir.

Django'nun tarihi iki püf noktayı açıklamak ile alakalıdır. Bunların ilki Django'nun "tatlı yerleri"dir. Çünkü Django bir haber ortamı olarak doğdu ve sağladığı özelliklerle (örneğin 6. Bölümde ele alacağımız yönetici bölümü gibi), Amazon.com, craiglist.com ve washingtonpost.com gibi veritabanından çalışan "içerik" siteleri için uygun bir hale geldi. Hemen karamsarlığa kapılmayın, çünkü Django özellikle küçük sitelerin de geliştirilmesi için de uygundur ve dinamik bir Web sitesi yapımı için efektiftir. (Diğer şeylerin efektif olmadığı durumlarda, özellikle ve efektif arasında bir fark vardır.)

Django'nun diğer bir püf noktası, açık kaynaklı yazılım camiası tarafından biçimlendiriliyor olmasıdır. Çünkü Django bir akademik örnek veya ticari bir projedense, geliştiricilerinin karşılaştığı ve karşılaşmaya devam ettikleri Web geliştirme problemlerinden, gerçek-dünya kodlarından çıkarılmıştır. Bunun getirdiği bir sonuç olarak, Django günlük işler baz alınarak geliştirilmiştir. Çatı bakıcıları ilgilerini, Django'yu; geliştiricinin zaman kazanması, yük altında uygulamalarını kolayca geliştirip bakımını yapmaları için harcamışlardır. Eğer başka bir durum yoksa, geliştiriciler kendi zamanlarını kullanıp, beklentilerini karşılayarak zevkle işlerini yapmaktadır. (Açıklamak gerekirse, kendi yaptıkları projelerini yeni proje üretmek için kullanmaktadırlar.)