Django Framework Neden Tercih Edilmeli?

Bir Python geliştirici olarak dili öğrendikten sonra kendimi hangi alanda geliştirmeliyim sorusunu "web teknolojileri" olarak cevaplayan herkes mutlaka Django Framework ile karşılaşmıştır. 

En büyük rakibi Flask ve diğer bir çok Pyhton Web Framework alternatifleri ile karşılaştırıldığında Django, hemen hemen çoğunluğun ilk tercihi oluyor. Peki neden? 

Öncelikle Django'yu kullanan popüler servisler arasında Disqus, Instagram, Spotify, YouTube, The Washington Post, Bitbucket, Dropbox, Eventbrite, Mozilla, Prezi gibi dev şirketlerin yer aldığını söyleyelim. Bu projelerin bazıları tamamen, bazıları ise projenin belli bir bölümünü django frameworkten faydalanarak geliştirdiler. En merak edilen "neden?" sorusunun cevabı burada gizli. 

class Blog(SEOAbstractModel):
    status = models.BooleanField("Durum (Aktif/Pasif)", default=False)
    .....
    author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Yazar", related_name='blog_posts', default=1)
    title = models.CharField("Blog Başlığı", max_length=150, unique=True)
    short_description = models.TextField("Kısa Açıklama", max_length=155)
    post_image = models.ImageField("Yazı Resmi", help_text="1304x500 / Zorunlu alan değildir.",
                                   blank=True, null=True, upload_to='img/blog/')
    .....
    text = RichTextUploadingField("Yazı İçeriği")
    updated_on = models.DateTimeField("Güncellenme Tarihi", auto_now=True)
    published_date = models.DateTimeField("Yayınlanma Tarihi", auto_now_add=True)

    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.seo_title)
        super(Blog, self).save(*args, **kwargs)

    def get_absolute_url(self):
        return reverse('mainsite:blog-details', args=[self.slug])
    .....
    class Meta:
        verbose_name_plural = "Blog Yazıları"
        verbose_name = "Yazı"
        ordering = ['-published_date']

Yukarıda gördüğünüz kod parçası bu sitenin blog modeline ait. Oldukça az kod ile, tam teşekküllü bir blog için veri tabanı oluşturmanıza olanak sağlayan modeli yazmak gördüğünüz gibi çok basit.

Django gerek ufak çaplı, gerek ise ölçeklenebilir büyük projeler olsun hepsine uygun altyapısı sunuyor ve bu altyapı kendine hayran bırakacak şekilde hızlı ve kaliteli dinamik projeler geliştirilmesine olanak sağlıyor. 

Diğer framework alternatifleriyle karşılaştıran neredeyse tüm kaynaklarda en başta Flask Framework gelmekte ve genelde basit projeler için Flask önerilmekte. Bunun sebebi için kullanılan argüman ise, Flask'ın minimum ihtiyaç gereçleriyle gelmesi ve ihtiyaca yönelik ek paketlerin eklenebilmesidir. Django ise topyekün tüm ihtiyaç olabilecek altyapıyla tam teşekküllü bir altyapı olarak sunuluyor. Bu kötü bir şey mi? Hayır.

Çünkü kullanmayacağınız modülleri barındırsa da django, gerek clickjacking, SQL Injection ve benzeri bir çok güvenlik konularında koruma sağlayıp, gerek ölçeklenebilirlik imkanları olsun görevini hız faktöründen de ödün vermeden sunabiliyor. Bu da oldukça önemli bir cevap niteliği taşıyor.

Django MVT

Djangonun template dili ve kullandığı MVT (model view template) mimarisi oldukça basit ve güçlü bir esneklik sunarak front-end aşamasına destek oluyor.

Benim sizlere tavsiyem, eğer web ile uğraşacaksanız ve ilk framework deneyiminiz olacaksa, django ile başlayın. Bu size ileriye yönelik çok büyük projeler de geliştirebileceğiniz muhteşem bir backend teknolojisinin ve imkanlarının kapılarını aralayacaktır.

İlk yazımızın sonuna geldik, umarım hoşunuza gitmiş ve sizlere az da olsa bir faydam olmuştur. Yazılım, tasarım ve teknoloji alanlarında daha kapsamlı bir çok yazının yayınlanacağı bloğumu takip etmeye devam edin.

Paylaş

Yeni Blog Yazılarımdan Haberdar Olun

Yeni yazılarımdan anında haberdar olmak için email listeme abone olun. Size spam göndermeyeceğime söz veriyorum!