Django’ya Genel Bakış (Django serisi, #1)

Bu yazımda genel olarak Django’ya değinecek, iyi ve kötü yanlarını sizlerle paylaşacağım. Genel bakışımızın ardından gelecek ilk yazı, Django ile ilk uygulamanın geliştirilmesi hakkında olacak. Bu yazı, yazı serisinin ilk yazısı olmakla beraber; gelecek tüm yazılarda ekstra bilgileri sizlerle paylaşacağım.
Rüya Dil: Python
Paul Graham’ın “Hackers & Painters” kitabında geçen Rüya Dil kısmına bir yerlerde rastlamışsınızdır. Rüya gibi olan bir dilde neler olmalı, öncelikle onu tartışalım mı?
- Açık ve özdür.
- Hızlı başlayan, etkileşimli bir üst düzeyi vardır.
- Yaygın sorunları çok az kod yazarak çözecek programlar üretebilirsiniz.
- Dilin sözdizimi, hatalara meydan veremeyecek şekilde kısadır. Gereksiz bir karakter tuşlamanız veya Shift tuşunu fazlaca kullanmanız dahi gerekmez.
- Gözünüz kapalı, hızlı bir şekilde iç içe döngüler oluşturabilir, hatta gerekirse satır içi bayt kodları bile yazabilirsiniz.
- Dili öğrenebileceğiniz çok sayıda örnek vardır ve dil de onu nasıl kullanacağınızı örneklerden birkaç dakika içerisinde anlayabileceğiniz özelliktedir.
- Dilin küçük bir çekirdeği ve çekirdek dil kadar özenli bir şekilde tasarlanmış, güçlü kitaplıkları bulunur.
- Kitaplıklar birbiriyle gayet uyumlu çalışır; dilin bütün unsurları, hassas bir fotoğraf makinesinin parçaları gibi birbirine uyar.
- İşletim sistemiyle ve diğer dillerle yazılmış uygulamalarla iletişim kurmak kolaydır.
- Sözdizimleri de dahil olmak üzere, dilin her özelliği değiştirilebilir ve önceden tanımlanmış fonksiyonlarla aynı statüye sahiptir. Rüya dilin yalnızca kaynağı değil, aynı zamanda tasarımı da açıktır.
Rüya dil kriterlerine bakınca, benim zihnimde canlanan elbette Python.

Python günümüzde bildiğiniz üzere çok farklı alanlarda, çok farklı amaçlarla kullanılabiliniyor. Bilimsel hesaplamalar, yapay zeka uygulamaları, dil işlemeleri, görüntü veya ses işlemeleri, web uygulamaları, masaüstü programları aklıma ilk gelenler. Kullanım alanının çoğunluğu, bir başka deyişle kapsamı, bu denli geniş olunca; elbette arkasında inanılmaz sayıda güçlü kütüphaneler ve çalışma çatıları bulunuyor.
Web Uygulamalarında Python
Python’ın web alanında kullanılan birçok frameworkü bulunmakta, tıpkı Weppy, Pyramid, Flask ve Django gibi. (Django yazı serisi bitince Flask veya Weppy frameworklerinden birisine de yine aynı formatta değineceğim.)
Django’ya Genel Bakış
Web uygulaması geliştirmek için, Python dışındaki tüm programlama dillerinin kendi artı ve eksileri mevcut. Şahsi fikrim, eksilerin daha ağır bastığı; ancak bu artı ve eksileri tartışmayacağız.
Python’ın açık ve öz olması Django’ya sarılmamızı sağlıyor. Django, çok sayıda hazır kütüphaneler ve ortamlar tarafından destekleniyor. Django özellikleri, ortamı, Django için olan kütüphaneler ve ortamlar özenle hazırlanmış dökümanlar ile herkes için anlaşılır hale getirilmiş.
Django çatısı kurulduktan sonra, proje başlatılır. Django projeleri, Django uygulamaları ile çalışır. Bu uygulamaların sayısı birde olabilir, birden fazla da olabilir. (Tez çalışmamda dahi bir Django uygulaması oluşturarak projemi tamamladım.) Oluşturulan Django uygulamaları, çeşitli bileşenler ile gelir. Bunlar “views”, “model”, “admin” başta olmak üzere; tercihe bağlı olarak “forms”, “template”’dir. Django bileşenler arasında sıkı bir entegrasyona sahiptir.

Django, nesneleri ilişkilendirebilme olanağı sağlar bize. Bilgayar literatüründe buna Object-Relation Mapper ve/veya Object-Relational Mapping (ORM) denir.
Django projeleri “urls” isimli bir dosyayı, siz projeyi oluşturunca otomatik olarak üretir. Bağlantıların kontrolünü, yönetimini bu dosya üzerinden kolaylıkla sağlarsınız. Django bizlere, temiz ve anlaşılabilir bağlantı tasarım ve yönetimi olanağı sağlar.
Bana göre Django’nun en önemli özelliklerinden birisi: otomatik olarak yönetim panelinin oluşturulmasıdır. Diğer programlama dillerinde, yönetim paneli oluşturmak için ekstra bir efor gerekmektedir. Django ise, bunu otomatik olarak bize sağlar. Yazının burasına kadar geldiyseniz, yönetim panelinin ne olduğunu ve ne işe yaradığını bildiğinizi varsayabiliriz.

Django’nun önemli özelliklerinden birisi de, hiç kuşkusuz, form yapısı olacaktır. Diğer dillerde formlar oluşturup, bu formları hem ön planda hem de arka planda ayrı ayrı geliştirmeniz gerekmekte. Django ile form oluşturup, görünür kılmak ise en fazla bir dakikanızı alacaktır.
Django, ileri seviye geliştirme ortamı sunar. Python’dan aldığı güç ve kendi içindeki kararlı yapısı bunu sağlar.
Django ayrıca çoklu dil desteği sağlar. Modern özelliklerin her biri gömülü gelir. Veri çekmek, okumak, oluşturmak, silmek gibi işlemler saniyelik işlerdir. Django hayat kurtarır! :) Dakikalar içinde çok profesyonel ve fonksiyonel web uygulamaları geliştirebilirsiniz.
Bir sonraki yazımda Django’nun kurulumunu ve ilk uygulamayı -basit anlamda- geliştirmeyi anlatacağım. Devam eden yazılarda ise uygulamayı geliştirip, yeni bilgilere yer vereceğim.
Bir sonraki yazıya kadar; hoşça kalın!
