Django Framework’ü Nedir? Avantajları Neler?

Django (jang-oh diye okuyunuz) Python kullanılarak geliştirilmiş ücretsiz ve açık kaynak olan bir framework’tür. Peki, framework (iskelet) dediğimiz kavram nedir diye soracak olursanız sizler için açıklayalım. Yazılım alanında bir projeyi sıfırdan yapmaya kalkmanız, sizin için zorlayıcı bir yol olabilir. Framework’ler geliştiriciler tarafından geliştirilmiş ve kullanılmakta olan, şablonlar ile araçlardan oluşmuş yapılardır. En temel amacı geliştiriciye yardımcı olmaktır. Her projeye ve uygulamaya yönelik spesifik framework’ler geliştirilmiştir. Bugün bahsedeceğimiz Django, web teknolojisi alanında kullanılmaktadır.

Ne Zaman Ortaya Çıktı?

2003 – 2005 yılları arasında web teknolojisi geliştiren insanlardan oluşan bir takım ile Django yolculuğu başladı. Bu takım, haber içerikli web siteleri oluşturmakta ve onların işleyiş düzeninden sorumluydular. Üst üste oluşturulmuş web sitelerinden sonra yaptıkları çoğu eylemin birbirine benzer olduklarını fark ettiler. Ardından biz bunu neden bir çatı altında birleştirmiyoruz ki düşüncesiyle fikirlerini hayata geçirdiler. Benzer eylemler diyerek geçmeyelim ve bir web sitesinin nelerden oluştuğuna bakalım.

Önce bir arama sayfasını açtınız ardından arama motoruna ‘teknoloji.org’ yazdınız ve sonrasında gelen sonuçlardan sayfayı açtınız. Bunların arka planında sorgular, istekler ve daha fazlası bulunmakta. Framework’ler geliştiriciler için bu sorguları ve istekleri hazır bir paket olarak sunuyor.

Django yolculuğuna devam edersek, 2005 Haziran ayında açık kaynak bir proje olarak duyuruldu. O günden itibaren gelişmeye ve büyümeye devam eden Django günümüzdeki halini aldı.

Günümüzde herhangi bir web projesi için tüm imkanları sunan, açık kaynak oluşuyla gelişime açık ve tercihte ilk sıralarda olan framework’tür.

Django Kullanan Bazı Popüler Web Siteleri

django nedir
  • Disqus
  • Instagram 
  • Knight Foundation
  • MacArthur Foundation
  • Mozilla
  • National Geographic
  • Open Knowledge Foundation
  • Pinterest
  • Open Stack
  • Spotify
  • NASA
  • Reddit

Django’nun Bazı Belirleyici Özellikleri:

  • Kolay bir syntax’a sahip oluşu. (syntax programlama dilinde uyulması gereken kurallardır.)
  • MVC (Model-View-Controller) mimarisine sahip oluşu.

MVC dediğimiz kavram bir yazılım mimarisidir. Kullanıcı arayüzünü (view), işlenen veriyi (model) ve de arayüz ile veri arasındaki işlemleri (controller) birbirinden ayıran bir yapıdır. Bu sayede planlı bir şekilde proje geliştirilebilir. Projenin ileri dönemlerinde arayüzde bir değişiklik yapılacağı zaman hızlı ve diğer yapıları etkilemeyen bir düzeltme imkanı sağlayacaktır.

  • ORM (Object Relational Mapper)

ORM dediğiz kavram programda bulunan objeler ve de veri tabanı ile arasındaki iletişim köprüsüdür. Bu şekilde karmaşık geldi mi? O halde basite indirgeyelim. Veriyi programlara dahil etme konusu yıllardır gelişmekte olan bir süreç. Ve bunun sonucunda Oracle, MYSQL, MONGODB gibi birçok veri tabanı ortaya çıkmıştır.

Biz bu veri tabanlarını ve programlarımızı birleştirmek istediğimizde SQL dediğimiz sorgular yapmalıyız. Bu sorguları programlamaya yerleştirdiğimizde karmaşık ve zor bir manzara çıkıyor çoğu zaman. Karmaşıklığı çözmek adına geliştirilen teknolojilerden biri olan ORM, bir köprü gibi bu iki dünyayı birbirine bağlıyor. Her dilin yapısında farklı ORM’ler vardır. Django’nun da kendine özel bir ORM yapısı vardır.

  • HTTP kütüphaneleri
  • Middleware desteği

Ara katman olarak çevirebileceğimiz middleware tekrar eden görevleri üstlenen bir çözümdür. Bunu bir örnekle açıklayalım sizler için. Çoğumuz mobil bankacılık kullanmaktayız. Diyelim ki uygulama içerisindesiniz ve de bir işlem yapmak üzeresiniz. İşleminiz, ilk başta bu ara katmana gider, giriş yaptınız mı, herhangi bir problem var mı diye kontrol edilir ve ardından işlem gerçekleşir. Böylece zaman ve maliyet kaybı olmaz.

Django’nun Avantajları Neler?

Hızlı ve Sabit Yapısı

Django’nun ana amacı geliştiriciler için projeyi kolay bir hale getirmek. Bunu yapmak adına iki felsefeyi benimsemiş durumda. Bunlar:

  • Rapid Application Development 

Hızlı uygulama geliştirmek için ortaya çıkmış kavramlardan biridir. Fazla detaya girmeden ürünün sunulmasını amaçlar. Bunun için geniş yelpazede araç ve kütüphaneye ihtiyaç duyar. (Ktüphaneler bazı spesifik işlemlerin bir araya getirilip geliştiriciye hazır olarak sunulduğu paketlerdir. ) Django ile Rapid felsefesini hayata geçirebilirsiniz.

  • DRY (Don’t Repeat Yourself)

Kendini Tekrar Etme olarak çevirebileceğimiz bu felsefesi kısaca bir parçanın yeniden kullanılmasıdır. Aynı kodu defalarca kez yazmak yerine, tek bir seferde yazıp sonrasında kullanmaya yöneliktir. Bu kodlar birbirinden farklı projelerde aynı mekanizmaları içeren parçalarda kullanılabilir.

Güvenlik Django’nun Kilit Noktası

Güvenlik Django için en önemli önceliklerden biridir. Bu nedenle yaygın güvenlik problemlerine karşı geliştiricilere yardım eder.

Bunlar:

  • clickjacking

Kullanıcıya kendini farklı ve ilgi çekici sunup arka planda bilgi hırsızlığı, yanlış yönlendirme gibi eylemler yaratan bir güvenlik açığıdır. Buna bir örnek verelim. Bir gezi sitesini açtınız ve de içinde “Ücretsiz seyahat et!” gibi bir buton beliriyor. Siz de bu fikre kapılıp ona tıklamayı seçtiniz. Ardından arka planda başka sayfaları beğenmiş, bilgilerinizi yabancı bir kaynakla paylaşmış olabilirsiniz. Bu sıkça yaşanan bir güvenlik açığıdır.

  • cross-site scripting

Bu güvenlik açığı eğer yazılımcı, kullanıcıdan aldığı bilgileri bir filtreden geçirmiyorsa doğabilmektedir. Kullanıcı eğer bir saldırgansa ve yazılıma direkt girebileceği bir boşluk bırakılmışsa diğer kullanıcılara ve programa zarar verme ihtimali vardır.

  • SQL injection

Yazımızda SQL ifadesinden bahsetmiştik. Veri tabanında veriyi eklemek, değiştirmek veya silmek adına gerçekleştirdiğimiz zaman SQL kullanırız. Eğer kötü bir yazılım SQL sorgularının arasına bilgi hırsızlığı yapacak bir eklenti yerleştirirse bir güvenlik açığı doğar.

Django yukarıda bahsettiğimiz güvenlik açıklarına ve benzer durumlara karşı altyapısını geliştirmiş, donanımlı bir yapı haline gelmiştir.

Her Projeye Uyarlanabilir Olan Django Framework’ü

Django dilediğiniz alanda proje yapabilmeniz için size özgürlük tanıyan bir framework’tür. Büyük projeler, okulda karar verdiğiniz küçük projeler gibi geniş bir alana sahiptir.

Cross-platform olması nedeniyle aynı anda MAC, Linux ve Windows üzerinde çalışabilir.

Trafiği yoğun olan projeler geliştirmenize imkan tanır.

Community Desteği

django hakkında bir comic

Django’nun gelişmesinde büyük bir rol oynayan topluluktan bahsetmeden geçemeyiz. Açık bir proje olmasından kaynaklı birçok geliştirici katkıda bulunmuştur.

Django öğrenmeye hevesli kişiler için yardım konusunda gönüllü bir topluluktur.

Derin, detaylı kaynak imkanı ve kendilerinin hazırladığı kapsamlı dokümantasyon ile siz de bu framework’e gönül verebilirsiniz!

Teknoloji'den geri kalmamak için e-posta listemize abone olun!

teknoloji, hayal gücü ve sanat dünyalarını seven, üçünü bir araya getirmeye hevesli bir bilgisayar mühendisliği öğrencisi.