Django Nedir?

Oğuzhan Çelikarslan
4 min readAug 3, 2020

--

Django JANG-oh şeklinde okunan python tabanlı ücretsiz açık kaynak kodlu bir web frameworküdür. Django’nun nasıl telafuz edildiğini sesli olarak duymak istiyorsanız aşağıda ki linke tıkladığınızda otomatik olarak bir mp3 dosyası oynayacaktır.

Django telafuzu ses dosyası.

Web Framework(web uygulama iskeleti) nedir?

Genel olarak bizler bir web sitesi geliştirdiğimizde bazı tasarım desenlerini sürekli kullanıp bir takım işlevleri örneğin üye girişi, üye çıkışı, üye kayıdı veya üye izinleri gibi tekrar tekrar yazarız. Web iskeletleri bizlerin bu yaptığı tekrarları biliyor ve daha önceden bizim için bazı işlevleri ve tasarım desenlerini belli bir biçimde paketleyerek bir iskelet halinde bizlere sunuyor. Bizde bu iskeletin üzerine aynı şekilde aynı yapıda inşa ederek, hızlı bir şekilde web uygulamalarımızı yayına alabiliyoruz. Kim istemez ki bir web sitesi yapmaya başladığında otomatik bazı işlevler hazır olmasın?

Django nasıl meydana geldi?

Django’nun doğumu 2003–2004 senelerinde Simon Willison ve Adrian Holovaty tarafında başlıyor. Simon Willison stajyer olarak Lawrence’da Journal-World gazetesinde web yazılımcı olarak çalışmaya başlıyor. Simon burada stajyer olduğunda 5 yıllık çok sağlam bir PHP deneyimi vardı. Adrian Holovaty ise hali hazırdaki Lawrance’ın web sitesini tamamen PHP ile yazmıştı. Daha sonraları Mark Pilgrim’ın **Dive Into Python** kitabını okuduktan sonra ikiside Python’dan çok hoşlanıyor. Kritik bir karar alıp PHP ile web uygulamaları geliştirmeyi bırakıp Python ile devam etmeyi kararlaştırıyorlar. Tabiki her ikiside deneyimli yazılımcılar olduğu için web development nasıl olmalıdır, doğru şekilde tasarlanmış URL yapısının önemi yada doğru şekilde css kullanımı(2004 senesinde css standartları daha yeni yeni şekilleniyordu) vb temellere sahiptiler. Daha sonra mevcut python araçlarını inceleyerek, nasıl web uygulaması geliştirilebilir bunu inceliyorlar ama her ikiside bu mevcut araçların istedikleri şekilde olmadıklarını düşünüyorlar.

Aynı zamanda Python deployment seçeneklerine de baktılar ve en iyi kullanılabilecek şeyin mod_python olduğuna karar verdiler. Django’yu oluşturmanın asıl nedeni, mod_python’un ölçeklendirilebileceğine ikna olmamalarıydı. Mod_pythonı başka bir şey ile değiştirme ihtimallerine karşılık, mod_python ve kendi kodları arasına ince bir soyut katman oluşturdular. Tam bu noktada da Django HttpRequest / HttpResponse nesneleri oluştu. WSGI o zamanlar daha oluşmamıştı. Django ile amaç her zaman lawrence.com’u djangoya taşımaktı — bu yüzden Rails BaseCamp’tan çıkarılırken, Django’nun lawrence.com’un işlevselliğine uyacak şekilde oluşturulduğunu söyleyebiliriz.

Daha sonra bu şekilde geliştirmelere devam ettiler. Zaman ilerledi Django’da birkaç yeni site oluşturdular — canlı olarak ilk çıkan Django sitesi 6newslawrence.com oldu.

Simon’un stajyerlerliği 1 yıl sürdü ve Simon ekipten ayrılmadan 1 ay önce Jacob Kaplan-Moss ekibe dahil oldu. Jacob ve Adrian Django’yu geliştirmeye devam ettiler ve ortalama 1 yıl sonra World Company’yi (Gazetenin sahipleri) projeyi open source yapmak için ikna ettiler. Bunun içinde — Ruby on Rails’in başarılı hikayesini örnek gösterdiler. Bunun yanında World Company birçok ücretisiz yazılım kullanıyordu ve buna karşılık olarakda bir şeyler vermek istediler ve proje açık kaynak kodlu olarak paylaşıldı. Daha sonra Adrian kendisinin favori gitarcısı Django Reinhardt’ın isminden esinlendi. Ufakta olsa Ian Bicking’in isminide geçirmekte fayda var. Adrian ile bir görüşmesinden sonra Adrian’ı etkiledi ve Django’nun Code Generator’ında metaclasseslardan faydalanarak daha akıllı bir sisteme geçtiler.

Django’nun tarihi kısa bir özet geçmek istenirse bu şekilde ilerliyor. Daha sonraları BSD lisansı ile kar amacı gütmeyen bir gönüllü ekip tarafından gönderilen donationlar ile hayatlarına devam ediyorlar.

Kimler Django’yu kullanıyor?

Buna birçok örnek verebiliriz. Devlet kuruluşundan, organizasyonlara yada sosyal medya sitelerine kadar çeşitli örnekler verilebilir. Hatta bazı bildiğimiz dev isimlerde bunların arasında örneğin Instagram, Pintrest, Trivago, Disqus, Udemy, Coursera vb. Bu liste uzar gider.

Django ile sadece blog sitesi mi oluşturulur?

Hayır! Yukarıda verdiğim web sitesi örneklerine de bakarak çok çeşitli şekillerde web siteleri oluşturabilirsiniz. İster yapay zeka modelinizi alın çalıştırın hesaplamalar yaptırın. İsterseniz blog sitesi kurun!

Django bir web framework ise bize hangi özellikleri sağlıyor?

Django developlerların fikir aşamasında ki projeleri olabildiğince hızlı bir şekilde tamamlamaları için tasarlandı. Örnek vermek gerekirse siz Django projesini kurduğunuzda otomatik olarak üye giriş, çıkış, izin, üye grupları gibi çeşitli özellikleri içeren bir user appi otomatik olarak framework ile beraber geliyor.

Django hazırlamış olduğu middlewareler sayesinde kullanıcı tarafından yapılan istekler daha sizin bu isteği karşılayacağınız viewlara gelmeden, bu ara katmanlardan geçiriliyor. Django güvenliği çok ciddiye alıyor.

Bir başka örnek, içerisindeki ORM sayesinde sizler SQL bilmeden, örneğin database tablolarını kolayca oluşturabilir yada database üzerinden sorgular gerçekleştirebilirsiniz.

Dinamik admin paneline de bu makalede yer vermek gerek diye düşünüyorum. Sizler veri modellerinizi bir diğer deyişle python ile database tablolarınızı oluşturup, bir satır ile django admin paneline kayıt ettiğinizde, Django admin paneli otomatik olarak CRUD işlemleri yapabileceğiniz bir menüyü admin panelinde oluşturuyor. Buna gelin bir örnek verelim. Bir ürün modeli oluşturduğunuzu düşünelim içerisinde hangi fieldlar olacak ise python kodu ile tanımladınız. Bu modeli admin paneline kayıt ettiniz. Admin paneline üye bilgileriniz ile giriş yaparsanız artık admin panelinden ürün ekleyebilir, silebilir yada güncelleyebilir kısacası istediğiniz her şeyi otomatik olarak yapabilir vaziyete gelirsiniz.

Temiz zarif URL yapıları yüksek kaliteli web sitelerinin olmazsa olmazı. Django .asp yada .php gibi url yapılarının sonuna uzantı koymaz ve bizleri güzel url yapıları tasarlamaya teşvik eder.

Django ile gelen template yapısı sayesinde view da yazdığımız örneğin iterable nesnelerini django templateleri üzerinde itere edebiliriz. Kısacası django template yapısı sayesinde pythondan veri gönderip, template üzerinde bu veriyi özel taglar sayesinde kolaylıkla html dosyalarımızda bastırabiliriz.

Template etiketleri sayesinde oturumun açılıp açılmadığı gibi sorgu işlemlerini dahi kolaylık ile template üzerinden yapabiliyoruz.

Saymakla bitmez daha birçok özellikleri Django web sayfası üzerinden bulabilirsiniz.
Cache sistemine de göz atmanızı tavsiye ederim.

Quora’da ki bir kullanıcının yorumuna göre eskiden Django web sitesinde şu şekilde bir tanıtım yazısı varmış.
“Django 2003 senesinde Lawrance’da Journal-World gazetesinde internal proje olarak başladı. Yazılım ekibi genellikle yeni özellikleri yada komple bazı uygulamaları saatler içinde geliştirmesi gerekiyordu. Django bu nedenle hem hızlı bir şekilde haber sitelerinin ihtiyaçlarını karşılamak hemde geliştirme sürecinin hızlı, temiz ve sürdürülebilir olması için inşa edildi.”

Oğuzhan ÇELİKARSLAN

Kaynaklar:
- Django web sitesi
- Quora
- Vikipedi

--

--

Oğuzhan Çelikarslan
Oğuzhan Çelikarslan

Written by Oğuzhan Çelikarslan

Python enthusiast who focuses on the problem, break down it, and solves it. https://oguzhann.net

No responses yet