<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>Django Web Çatısı</title><description></description><managingEditor>noreply@blogger.com (onur)</managingEditor><pubDate>Wed, 2 Oct 2024 19:41:52 +0300</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">11</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://djangotr.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle/><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>Kurulumun Test Edilmesi</title><link>http://djangotr.blogspot.com/2009/08/kurulumun-test-edilmesi.html</link><category>Bölüm 2</category><author>noreply@blogger.com (onur)</author><pubDate>Thu, 20 Aug 2009 16:04:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3977579487645584934.post-8398086892550058861</guid><description>&lt;p&gt;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 (&lt;span
class="code"&gt;django&lt;/span&gt; dizinin barındırmayan bir dizine) ve Python
yorumlayıcısını &lt;span class="code"&gt;python&lt;/span&gt; diyerek başlatın. Eğer
yüklemeniz başarılıysa, &lt;span class="code"&gt;django&lt;/span&gt; modülünü dahil
edebilmeniz gereklidir.&lt;/p&gt;

&lt;pre class="code"&gt;
&amp;gt;&amp;gt;&amp;gt; import django
&amp;gt;&amp;gt;&amp;gt; django.VERSION
(1, 1, 0, ‘final’, 1)
&lt;/pre&gt;

&lt;div class="uyari"&gt;
&lt;p&gt;&lt;strong&gt;İnteraktif Yorumlayıcı Örnekleri&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Python interaktif yorumlayıcısı, interaktif Python programları yazmanızı
sağlar. Başlatmak için, komut satırından &lt;span class="code"&gt;python&lt;/span&gt;
komutunu çalıştırın.&lt;/p&gt;

&lt;p&gt;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 (&lt;span class="code"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;) anlayabilirsiniz.
Eğer örnekleri bu kitaptan kopyalıyorsanız, büyüktür işaretlerini
kopyalamayın.&lt;/p&gt;

&lt;p&gt;İnteraktif yorumlayıcı içerisindeki çok satırlı deyimler üç nokta (&lt;span
class="code"&gt;...&lt;/span&gt;) ile başlamaktadır. Örneğin: 

&lt;pre class="code"&gt;
&amp;gt;&amp;gt;&amp;gt; print &amp;quot;&amp;quot;&amp;quot;Bu üç noktayı
... çıkartan bir
... karakter dizisidir.&amp;quot;&amp;quot;&amp;quot;
Bu üç noktayı
çıkartan bir
karakter dizisidir.
&amp;gt;&amp;gt;&amp;gt; def fonksiyonum(değer):
...     print değer
&amp;gt;&amp;gt;&amp;gt; fonksiyonum(&amp;#39;merhaba&amp;#39;)
merhaba
&lt;/pre&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Django Kurulumu II</title><link>http://djangotr.blogspot.com/2009/08/django-kurulumu-ii.html</link><category>Bölüm 2</category><author>noreply@blogger.com (onur)</author><pubDate>Thu, 20 Aug 2009 15:30:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3977579487645584934.post-5342770940805906042</guid><description>&lt;h3&gt;&amp;quot;Trunk&amp;quot; Sürümünün Kurulumu&lt;/h3&gt;

&lt;p&gt;Django'nun son ve geliştirilmekte olan sürümününe &lt;em&gt;trunk&lt;/em&gt; 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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Django trunk sürümünü indirmek için şu adımları uygulayınız:&lt;/p&gt;

&lt;div class="adimlar"&gt;
&lt;ol&gt;
 &lt;li&gt;Subversion istemcisinin kurulu olduğundan emin olun. Programı &lt;a
 href="http://subversion.tigris.org/"&gt;http://subversion.tigris.org/&lt;/a&gt;
 adresinden ücretsiz olarak indirebilirsiniz ve &lt;a
 href="http://svnbook.red-bean.com/"&gt;http://svnbook.red-bean.com/&lt;/a&gt; adresinde
 hazırlanmış dökümanları okuyabilirsiniz.&lt;/li&gt;
 &lt;li&gt;Trunk versiyonunu şu komutu kullanarak indirin:&lt;br /&gt;
 &lt;span class="code"&gt;svn co http://code.djangoproject.com/svn/django/trunk
 djtrunk&lt;/span&gt;&lt;/li&gt;
 &lt;li&gt;Python kurulumunun site-packages dizinini bulun. Bu dizin genellikle &lt;span
 class="code"&gt;/usr/lib/python2.4/site-packages&lt;/span&gt; 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:
 &lt;pre class="code"&gt;python -c 'import sys, pprint; pprint.pprint(sys.path)'&lt;/pre&gt;
 Çıkan sonuçlar içerisinde site-packages dizini de olmalıdır.&lt;/li&gt;
 &lt;li&gt;&lt;span class="code"&gt;site-packages&lt;/span&gt; dizini içerisinde &lt;span
 class="code"&gt;django.pth&lt;/span&gt; isimli bir dosya oluşturun ve bu dosyaya &lt;span
 class="code"&gt;djtrunk&lt;/span&gt; dizininin tam yolunu girin. Örneğin dosyanızın
 içeriği şöyle olmalıdır:
 &lt;pre class="code"&gt;/home/ben/kod/djtrunk&lt;/pre&gt;&lt;/li&gt;
 &lt;li&gt;&lt;span class="code"&gt;djtrunk/django/bin&lt;/span&gt; dizinin sistem PATH'ı na
 ekleyin. Bu dizin &lt;span class="code"&gt;django-admin.py&lt;/span&gt; gibi yönetim
 araçlarını barındırmaktadır.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;

&lt;div class="uyari"&gt;
&lt;p&gt;&lt;strong&gt;İpucu:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eğer &lt;span class="code"&gt;.pth&lt;/span&gt; dosyalarını yeni görüyorsanız, daha fazla
bilgiyi &lt;a
href="http://www.djangoproject.com/r/python/site-module/"&gt;http://www.djangoproject.com/r/python/site-module/&lt;/a&gt;
adresinde bulabilirsiniz.&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Django'yu Subversion ile indirip yukarıdaki adımları tamamladıktan sonra,
&lt;span class="code"&gt;python setup.py install&lt;/span&gt; komutunu çalıştırmanıza gerek
yoktur, bu işlemi zaten elinizle hallettiniz!&lt;/p&gt;

&lt;p&gt;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 &lt;span class="code"&gt;svn update&lt;/span&gt; komutunu 
&lt;span class="code"&gt;djtrunk&lt;/span&gt; dizininde çalıştırın. Komut çalışırken,
subversion &lt;a
href="http://code.djangoproject.com/"&gt;http://code.djangoproject.com/&lt;/a&gt; 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.&lt;/p&gt;

&lt;p&gt;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 &amp;quot;revizyon
numarası&amp;quot; veya &amp;quot;değişiklik sürümü&amp;quot;dür. Revizyon numarasını
öğrenmek için &amp;quot;svn info&amp;quot; komutunu &lt;span class="code"&gt;djtrunk&lt;/span&gt;
dizininde çalıştırın ve &amp;quot;Revision:&amp;quot; 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,
&amp;quot;Django'yu [revizyon numarası]'ndan beri kullanıyorum&amp;quot; demek bir onur
meselesidir.&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Django Kurulumu I</title><link>http://djangotr.blogspot.com/2009/08/django-kurulumu-i.html</link><category>Bölüm 2</category><author>noreply@blogger.com (onur)</author><pubDate>Wed, 19 Aug 2009 12:36:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3977579487645584934.post-826098407120462974</guid><description>&lt;p&gt;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 &amp;quot;trunk&amp;quot; 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ı?&lt;/p&gt;

&lt;p&gt;Resmi dağıtılan sürümde kalmanızı öneriyoruz, fakat &amp;quot;trunk&amp;quot;
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.&lt;/p&gt;

&lt;h3&gt;Resmi Dağıtımın Yüklenmesi&lt;/h3&gt;

&lt;p&gt;Resmi sürüm numaraları, 1.0.3 veya 1.1 gibi, ve en son sürümü her zaman
&lt;a href="http://www.djangoproject.com/download/"&gt;http://www.djangoproject.com/download/&lt;/a&gt;
adresinde bulunur.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Eğer paketlenmiş bir sürüme ulaşamıyorsanız, çatıyı indirip kendiniz
kurabilirsiniz. Bunu yapmak için önce,
&lt;span class="code"&gt;Django-1.0.2-final.tar.gz&lt;/span&gt; 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:
&lt;span class="code"&gt;setup.py install&lt;/span&gt; komutunu çalıştırın.&lt;/p&gt;

&lt;p&gt;İşlem Unix sistemlerde şu şekilde yapılmaktadır:&lt;/p&gt;

&lt;ol&gt;
 &lt;li&gt;&lt;span class="code"&gt;tar xzvf Django-1.0.2-final.tar.g&lt;/span&gt;&lt;/li&gt;
 &lt;li&gt;&lt;span class="code"&gt;cd Django-*&lt;/span&gt;&lt;/li&gt;
 &lt;li&gt;&lt;span class="code"&gt;sudo python setup.py install&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Windows sistemlerde, &lt;span class="code"&gt;.tar.gz&lt;/span&gt; dosyalarını çıkarmanız
için 7-zip
(&lt;a href="http://www.djangoproject.com/r/7zip/"&gt;http://www.djangoproject.com/r/7zip/&lt;/a&gt;)
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:

&lt;pre class="code"&gt;
python setup.py install
&lt;/pre&gt;

&lt;p&gt;Merağınızı gidermek adına: Django dosyaları, Python yüklemesinin
&lt;span class="code"&gt;site-packages&lt;/span&gt; dizinine, yani Python'un 3. parti
kütüphanelerinin bulunduğu dizine yükleyecektir. Genellikle bu dizin şöyledir:
&lt;span class="code"&gt;/usr/lib/python2.4/site-packages&lt;/span&gt;.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Python Kurulumu</title><link>http://djangotr.blogspot.com/2009/08/python-kurulumu.html</link><category>Bölüm 2</category><category>Python Kurulumu</category><author>noreply@blogger.com (onur)</author><pubDate>Tue, 18 Aug 2009 11:11:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3977579487645584934.post-5971983850540421458</guid><description>&lt;p&gt;Django tamamen Python ile yazıldığı için, çatıyı yüklemeden önce Python'un
kurulu olduğundan emin olun.&lt;/p&gt;

&lt;h3&gt;Python Sürümleri&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;div class="uyari"&gt;
&lt;p&gt;&lt;strong&gt;Django ve Python 3.0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;/div&gt;

&lt;h3&gt;Kurulum&lt;/h3&gt;

&lt;p&gt;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),
&lt;span class="code"&gt;python&lt;/span&gt; yazın. Eğer şunun gibi bir şey görüyorsanız,
Python yüklü demektir.

&lt;pre class="code"&gt;
Python 2.4.1 (#2, Mar 31 2005, 00:05:10)
[GCC 3.3 20030304 (Apple Computer, Inc. build 1666)] on darwin
Type &amp;quot;help&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;credits&amp;quot; or &amp;quot;license&amp;quot; for more information.
&amp;gt;&amp;gt;&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Diğer türlü Python'u indirmek ve kurmak zorundasınız. Hızlı ve kolaydır,
detaylı anlatım &lt;a href="http://www.python.org/download/"&gt;http://www.python.org/download/&lt;/a&gt;
adresinde bulunabilir.&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Başlarken</title><link>http://djangotr.blogspot.com/2009/08/baslarken.html</link><category>Bölüm 2</category><author>noreply@blogger.com (onur)</author><pubDate>Tue, 18 Aug 2009 11:09:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3977579487645584934.post-4617810330187817854</guid><description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Sonra, 12. Bölüm'de, Django'yu nasıl ürün sitesi olarak çıkaracağınızı ele
alacağız.&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Bu Kitabı Nasıl Okuyacaksınız?</title><link>http://djangotr.blogspot.com/2009/08/bu-kitab-nasl-okuyacaksnz.html</link><category>Bölüm 1</category><author>noreply@blogger.com (onur)</author><pubDate>Mon, 17 Aug 2009 18:36:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3977579487645584934.post-6769572873834177815</guid><description>&lt;p&gt;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.)&lt;/p&gt;

&lt;p&gt;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 &amp;quot;temel dersler,&amp;quot;
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.&lt;/p&gt;

&lt;p&gt;Ekler başvuru kaynağı içindir. Onlar,
&lt;a href="http://www.djangoproject.com/"&gt;http://www.djangoproject.com/&lt;/a&gt;
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.&lt;/p&gt;

&lt;h3&gt;Gerekli Programlama Bilgisi&lt;/h3&gt;

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

&lt;p&gt;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.&lt;/p&gt;

&lt;h3&gt;Gerekli Python Bilgisi&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Eğer Python ile programlama deneyiminiz varsa, onu irdelemek zorunda
değilsiniz. Django kodları genelde çok fazla &amp;quot;sihir&amp;quot; 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.&lt;/p&gt;

&lt;p&gt;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â,
&lt;a href="http://docs.python.org/tut/"&gt;http://docs.python.org/tut/&lt;/a&gt; adresinde
yer alan resmi Python rehberini okumanızı öneriyoruz. Ayrıca, Mark Pilgrim'in
yazmış olduğu,
&lt;a href="http://www.diveintopython.org/"&gt;http://www.diveintopython.org/&lt;/a&gt;
adresinde yer alan ve Apress tarafından yayımlanmış, özgür &lt;em&gt;Pyhon'a Dalış&lt;/em&gt;
kitabını da öneriyoruz.&lt;/p&gt;

&lt;h3&gt;Gerekli Django Sürümü&lt;/h3&gt;

&lt;p&gt;Bu kitap Django 1.1'i ele almıştır.&lt;/p&gt;

&lt;p&gt;Django geliştiricileri &amp;quot;ana sürümler&amp;quot; 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 &amp;quot;1.&amp;quot; ile başlayan
sürüm numaralarında çalışacaktır.&lt;/p&gt;

&lt;p&gt;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.)&lt;/p&gt;

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

&lt;h3&gt;Yardım Alımı&lt;/h3&gt;

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

&lt;ul&gt;
 &lt;li&gt;django-users mail listesi binlerce Django kullanıcısının bulunduğu, sorular
 sorup cevaplandığı yerdir.
 &lt;a href="http://www.djangoproject.com/r/django-users"&gt;http://www.djangoproject.com/r/django-users&lt;/a&gt;
 adresinden ücretsiz üye olabilirsiniz.&lt;/li&gt;
 &lt;li&gt;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.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Sırada ne Var?&lt;/h3&gt;

&lt;p&gt;Sonraki bölümde; Django ile başlangıç yapıp, yüklenmesi ve başlangıç
kurulumunu ele alacağız.&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Django'nun Tarihi</title><link>http://djangotr.blogspot.com/2009/08/djangonun-tarihi.html</link><category>Bölüm 1</category><author>noreply@blogger.com (onur)</author><pubDate>Mon, 17 Aug 2009 15:43:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3977579487645584934.post-6350549205929403710</guid><description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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:&lt;/p&gt;

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

&lt;p&gt;İşte bu tam olarak Django'nun nasıl oluştuğudur.&lt;/p&gt;

&lt;p&gt;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, &lt;em&gt;Lawrence Journal-World&lt;/em&gt; 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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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ı.&lt;/p&gt;

&lt;p&gt;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 (&amp;quot;Hayatın
Yardımsever Dikdatörleri,&amp;quot; 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.&lt;/p&gt;

&lt;p&gt;Django'nun tarihi iki püf noktayı açıklamak ile alakalıdır. Bunların ilki
Django'nun &amp;quot;tatlı yerleri&amp;quot;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 &amp;quot;içerik&amp;quot; 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 &lt;em&gt;efektif olmadığı&lt;/em&gt; durumlarda,
&lt;em&gt;özellikle&lt;/em&gt; ve &lt;em&gt;efektif&lt;/em&gt; arasında bir fark vardır.)&lt;/p&gt;

&lt;p&gt;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.)&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>MVC Tasarım Şablonu</title><link>http://djangotr.blogspot.com/2009/08/mvc-tasarm-sablonu.html</link><category>Bölüm 1</category><category>MVC</category><author>noreply@blogger.com (onur)</author><pubDate>Sun, 16 Aug 2009 20:08:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3977579487645584934.post-7087011421876757816</guid><description>&lt;p&gt;&lt;a href="http://www.blogger.com/2009/08/djangoya-giris.html"&gt;Bir önceki&lt;/a&gt; başlıkta ki örnekte verdiğimiz yaklaşımı bir de Web çatısı yaklaşımından vererek farkı gözlemlemizi sağlayan örneğe hızlıca dalış yapalım. CGI kodlarıyla yaptığınız örneği Django ile aşağıdaki gibi yazabilirsiniz. Burada dikkat edeceğiniz ilk unsur programımızı dört Python dosyasına (&lt;span class="code"&gt;modeller.py&lt;/span&gt;, &lt;span class="code"&gt;gorunenler.py&lt;/span&gt;, &lt;span class="code"&gt;urller.py&lt;/span&gt;) ve bir HTML şablonuna (&lt;span class="code"&gt;son_kitaplar.html&lt;/span&gt;) parçaladık:&lt;/p&gt;

&lt;pre class="code"&gt;
# modeller.py (veritabanı tabloları)

from django.db import models

class Kitap(models.Model):
   ad = models.CharField(max_length=50)
   yayim_tarihi = models.DateField()


# gorunusler.py (işin mantığı)

from django.shortcuts import render_to_response
from modeller import Kitap

def son_kitaplar(request):
   kitap_listesi = Kitap.objects.order_by('-pub_date')[:10]
   return render_to_response('son_kitaplar.html', {'kitap_listesi': kitap_listesi})


# urller.py (URL ayarları)

from django.conf.urls.defaults import *
import gorunusler

urlpatterns = patterns('',
   (r'^yeniler/$', gorunusler.son_litaplar),
)


# son_kitaplar.html (şablonumuz)

&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Kitaplar&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;h1&amp;gt;Kitaplar&amp;lt;/h1&amp;gt;
&amp;lt;ul&amp;gt;
{% for kitap in kitap_listesi %}
&amp;lt;li&amp;gt;{{ kitap.ad }}&amp;lt;/li&amp;gt;
{% endfor %}
&amp;lt;/ul&amp;gt;
&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Tekrar hatırlatmak gerekirse, programın sözdizimi hakkında merak etmeyin, sadece  genel hatlarıyla inceleyin. Burada sizi ilgilendiren kısım, yazılım parçalarıdır:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="code"&gt;modeller.py&lt;/span&gt; dosyası veritabanı tablolarını bir Python sınıfı olarak barındırmaktadır. Bu sınıfa bir &lt;em&gt;model&lt;/em&gt; denmektedir. Bu modeli kullanarak, SQL sorguları yerine kolayca ve tamamen Python kodları ile; veritabanınızda yeni kayıt yaratabilir, kayıdı alabilir, güncelleyebilir ve silebilirsiniz.&lt;/li&gt;
&lt;li&gt;&lt;span class="code"&gt;gorunusler.py&lt;/span&gt; dosyasi sayfanın mantığını içeren dosyasdır. &lt;span class="code"&gt;son_kitaplar()&lt;/span&gt; fonksiyona görünen (view) denmektedir.&lt;/li&gt;
&lt;li&gt;&lt;span class="code"&gt;urller.py&lt;/span&gt; dosyası URL desenlerine göre hangi görülecek (view) fonksiyonun çağrılacağını barındıran dosyadır. Bu örnekte, &lt;span class="code"&gt;/yeniler/&lt;/span&gt; URL'si son_kitaplar() fonksiyonunu çağıracaktır. Diğer bir deyişle: http://example.com/yeniler/ URL'sini açmaya çalışan biri, son_kitaplar() fonksiyonunu çalıştıracaktır (ve fonksiyonun oluşturduğu içeriği görecektir).&lt;/li&gt;
&lt;li&gt;&lt;span class="code"&gt;son_kitaplar.html&lt;/span&gt; dosyası sayfanın tasarımını tanımlayan HTML şablonudur. İçerisinde temel mantıksal deyimlerin çalıştırıldığı (örneğin: &lt;span class="code"&gt;{% for kitap in kitap_listesi %} gibi)&lt;/span&gt; bir şablon dili kullanmaktadır.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hepsi birlikte Model-View-Controller (MVC [Model-Görünen-Denetleyici]) isimli bir şablonun parçalarını oluşturur. Kolayca anlatmak gerekirse, MVC: arabirimlere ayrılmış (görünen [view]), kullanıcı istemine göre yönlendirilmiş (denetleyici [controller]) kodların, veriyi (modeli) kullanarak çalışmasını sağlayan yazılım geliştirme metoduna denmektedir. (MVC'i 5. Bölümde derinlemesine tartışacağız.)&lt;/p&gt;

&lt;p&gt;Bu yaklaşımın ana özelliği bileşenlerin &lt;em&gt;gevşek birleştirildiğidir&lt;/em&gt;. Django ile yapılmış Web uygulamalarının her bir parçasının ana bir amacı vardır ve bir parça diğerini etkilemeden çabucak değiştirilebilir. Örnek vermek gerekirse, geliştirici URL yapısında ki bir bölümü, uygulamının hiç bir şekilde iç yapısını bozmayacak şekilde kolayca değiştirebilir. Bir tasarımcı, Python koduna dokunmasına gerek kalmadan sayfanın HTML tasarımını değiştirebilir. Bir veritabanı yöneticisinin, veritabanı tablolarındaki adları değiştirmek istediğinde, yüzlerce dosyada değiştirmek yerine, sadece bir bölümde değiştirmesi yeterlidir.&lt;/p&gt;

&lt;p&gt;Bu kitapta (sitede), MVC'nin her bir bileşeninin kendi bölümü bulunmaktadır: 3. Bölüm görünenleri, 4. Bölüm şablonları ve 5. Bölüm modellleri anlatmaktadır.&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Web Çatısı da Nedir?</title><link>http://djangotr.blogspot.com/2009/08/web-cats-da-nedir.html</link><category>Bölüm 1</category><author>noreply@blogger.com (onur)</author><pubDate>Sun, 16 Aug 2009 12:26:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3977579487645584934.post-1984908535988308766</guid><description>&lt;p&gt;Django yeni nesil tanınmış web çatıları arasında yer almaktadır, fakat bu terim tam olarak neyi ifade etmektedir?&lt;/p&gt;

&lt;p&gt;Bu sorunun cevabı şöyle verilebilir, Python ile geliştirilmiş ve herhangi bir web çatısı kullanmayan bir web uygulaması düşünelim. Bu giriş bölümünde, temel bir görevi herhangi kısayol olmadan halletmeyi ele alacağız, umarız kısayolların ne kadar kullanışlu olduğunu kavrarsınız. (Ayrıca işleri kısayollar olmadan halletmeyi bilmek de değerlidir, çünkü kısayollar her zaman kullanılabilir olmayabilir. Ve en önemlisi bu şeylerin neden bu yoldan yapıldığını bilmek sizi daha iyi bir Web geliştiricisi yapacaktır.)&lt;/p&gt;

&lt;p&gt;Bir çatı kullanmadan, Python ile sıfırdan bir Web uygulaması yapmanın en kolay yolu 1998 den süregelen CGI standartını kullanmaktır. İşte size nasıl çalıştığının yüksek-seviye açıklaması: Html çıktısı veren Python scriptinizi hazırlayın ve ".cgi" uzantısı ile kaydedip Web sunucunuza gönderin ve Web tarayıcınızdan bu scripte ulaşın. Bu kadar.&lt;/p&gt;

&lt;p&gt;Bir Python CGI scripti örneği vermek gerekirse, aşağıdaki script veritabanından en son yayınlanmış son 10 kitabı listelemektedir. Sözdizimi hakkında merak etmeyin, sadece yaptığı basit şeylere göz gezdirin:&lt;/p&gt;

&lt;pre class="code"&gt;#!/usr/bin/env python

import MySQLdb

print &amp;quot;Content-Type: text/html\n&amp;quot;
print &amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Kitaplar&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;quot;
print &amp;quot;&amp;lt;body&amp;gt;&amp;quot;
print &amp;quot;&amp;lt;h1&amp;gt;Kitaplar&amp;lt;/h1&amp;gt;&amp;quot;
print &amp;quot;&amp;lt;ul&amp;gt;&amp;quot;

connection = MySQLdb.connect(user=&amp;#39;ben&amp;#39;, passwd=&amp;#39;izinver&amp;#39;, db=&amp;#39;veritabanim&amp;#39;)
cursor = connection.cursor()
cursor.execute(&amp;quot;SELECT isim FROM kitaplar ORDER BY yayim_tarihi DESC LIMIT 10&amp;quot;)

for row in cursor.fetchall():
    print &amp;quot;&amp;lt;li&amp;gt;%s&amp;lt;/li&amp;gt;&amp;quot; % row[0]

print &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;
print &amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;
&lt;/pre&gt;

&lt;p&gt;İlk olarak CGI gereksinimlerini karşılamak için, &amp;quot;Content-Type&amp;quot; satırı ardından boş satır yazdırılıyor, ardından bir kaç html kodu yazdırılıyor ve veritabanına bağlanıp sorgu çalıştırıldıktan sonra 10 kitap adı alınıyor. Bu kitaplar üzerinde çalışan döngü ile HTML kodlarından liste yaratılıyor. Son olarak HTML kodları kapatılıyor ve veritabanı bağlantısı kapatılıyor.&lt;/p&gt;

&lt;p&gt;Bunun giibi birer sayfayı sıfırdan yapmak o kadar da kötü değildir. Bu kod kolayca okunabilir, hatta yeni geliştiriciler bile 16 satır Python kodunu herkes gibi başından sonuna kadar anlayabilir. Öğrenilecek bir şey yoktur, okunacak başka bir kod yoktur. Ayrıca kodun çalıştırılması da kolaydır, sadece &amp;quot;.cgi&amp;quot; uznatısı ile bir dosyaya kaydedilir ve Web sunucusuna upload edilir, ardından sayfa ziyaret edilerek çalıştırılır.&lt;/p&gt;

&lt;p&gt;Bu kolaylığa rağmen bir dizi problem ve sinir bozucu durumlar vardır. Kendinize şu soruları sorun:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uygulamanızın birden fazla bölümü veritabanı bağlantısına ihtiyaç duyuyorsa ne olacak? Elbette veritabanı bağlantı fonksiyonu her bir script için sürekli tekrarlanmamalı. En yararlı çözüm paylaşımlı bir fonksiyonda bunu belirlemek olur.&lt;/li&gt;
&lt;li&gt;Geliştirici "Content-Type" satırını yazmayı ve veritabanı bağlantısını kapatmayı hatırlamalı mı? Bu küçük şeyler programcının verimliliğini düşürüp hatalar yapmasına olanak sağlamaktadır. Bu kurma-yıkma ile alakalı işlemler ortak bir altyapı tarafından halledilmelidir.&lt;/li&gt;
&lt;li&gt;Eğer kod birden fazla ortamda çalışacaksa ve her veritabanı ve şifre ayrı ayrıysa ne olacak? Bu noktada birkaç ortama-özel ayarlar olmazsa olmaz hale gelmektedir.&lt;/li&gt;
&lt;li&gt;Python kod deneyimi bulunmayan bir Web Tasarımcısı bu sayfayı tekrar tasarlamak istersen ne olacak? Hatalı bir karakter tüm uygulamanın çakılmasına yol açacaktır. Sayfanın mantığı, kitap başlıklarının veritabanından alınması ve HTML ile bölünmş sayfada yazdırılması, yani tasarımcı ana özelliklere dokunmadan sayfa tasarımını değiştirebilmelidir.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bu sorunlar Web çatısının çözmeye niyetlendiği sorunlardır. Bir Web çatısı uygulamanıza programlama altyapısı sunar, siz sadece tekeri tekrar icat etmeden, temiz yazmaya ve kodunuza bakım yapmaya odaklanırsınız. Kısaca, Django'nun yaptığı budur.&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Django'ya Giriş</title><link>http://djangotr.blogspot.com/2009/08/djangoya-giris.html</link><category>Bölüm 1</category><author>noreply@blogger.com (onur)</author><pubDate>Sat, 15 Aug 2009 12:56:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3977579487645584934.post-6341929879770028044</guid><description>&lt;p&gt;Django &lt;span style="font-style:italic;"&gt;(yan-go diye okunur)&lt;/span&gt; Web geliştirme sürecini kolaylaştıran ve bu sayede size zaman kazandıran bir Web Çatısı (Web Framework)'dır. Django kullanarak, yüksek kaliteli Web uygulamalarını, mimimum yaygara ile halledebilirsiniz.&lt;/p&gt;

&lt;p&gt;Web geliştirmenin en güzel yanları: heyecan verici, yaratıcı olmasının yanında; en kötü yanları ise kendini tekrarlaması, sinir bozucu ve rahatsızlık verici olmasıdır. Django uygulamanızın eğlenceli kısımlarına -- uygulamanızın püf noktalarına -- kendini tekrar etmeden odaklanmanızı sağlar. Bunu yaparken, yaygın Web geliştirme şablonlarına yüksek-seviye soyutlamalar getirmekte, sürekli kullanılan programlama işlemleri için kısayollar barındırmaktadır ve problem çözümü için temiz bir yol sunmaktadır. Aynı zamanda, Django yolunuzun dışında kalarak, gerektiğinde çatı çerçevesi dışında çalışmanıza da izin vermektedir.&lt;/p&gt;

&lt;p&gt;Bu kitabın (sitenin) amacı sizi bir Django uzmanı yapmaktır. İki ana hat vardır. İlk olarak Django ile nasıl Web uygulaması yapacağınızı anlatıyoruz ve ikinci olarak yüksek-seviye terimleri uygulamanız için nasıl uygulayacağınızı tartışıyoruz. Bu kitabı okuyarak hızlıca ve temiz bir kodla ve aynı zamanda kolayca yönetilebilen güçlü Web sitelerini oluşturmanızı sağlayan yetenekleri öğreneceksiniz.&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><title>Hakkında</title><link>http://djangotr.blogspot.com/2009/08/hello-world.html</link><author>noreply@blogger.com (onur)</author><pubDate>Sat, 15 Aug 2009 12:23:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3977579487645584934.post-6098812025554409685</guid><description>&lt;p&gt;Bu blog &lt;a href="http://www.djangoproject.com/"&gt;Django&lt;/a&gt; web çatısı hakkında bir referans kaynağı ve bilgi bankası oluşturulma amacıyla açılmıştır. Sıfırdan başlayarak ileri seviye Django kaynağı olmayı hedeflemektedir. Blogda yer alan çoğu yazı, &lt;a href="http://www.djangobook.com/"&gt;Django kitabının&lt;/a&gt; Türkçe çevirisidir.&lt;/p&gt;

&lt;p&gt;Blogda yer alan konuları anlayabilmek için, &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; bilgisine ihtiyaç vardır.&lt;/p&gt;

&lt;p&gt;Bu blogda yer alan ve ben tüm yazılar &lt;a href="http://www.gnu.org/copyleft/fdl.html"&gt;GNU GFDL&lt;/a&gt; lisansı altındadır.&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>