En Çok Kullanılan 10 Python Web Framework’ü

0

Framework kullanarak, kod yazımını daha sade ve anlaşılır hale getirebilir, uygulamanızın işleyişine odaklanabilirsiniz. Python framework ekosistemi oldukça geniş olduğundan, kodlama yapacağınız web uygulamasında hangi framworkü seçeceğinize karar vermekte zorlanabilirsiniz.

Sizler için hazırladığım bu rehberde, en iyi ve en popüler Python web frameworklerinin hangileri olduğunu, avantajlarını ve dezavantajlarını, daha çok hangi projelerde kullanıldıklarını anlatacağım. Bu sayede web programlama yapmak için doğru olan Python web frameworkünü daha rahat seçebileceksiniz.

 

Web Framework Nedir?

Web frameworkler; programcıların web uygulamalarını oluşturmasına yardımcı olan paketlerdir. Web framework kullanarak; kod yazmak için harcanan zamandan tasarruf edebilir, uygulamanızda yaşanması muhtemel güvenlik açıklarını önleyebilir, binlerce kişinin aynı anda uygulamanızda etkileşimde bulunmasını sağlayabilir ve sonuç olarak uygulamanızı daha efektif hale getirebilirsiniz.

Peki web programlama için neden Python tercih ediliyor? Stack Overflow geçtiğimiz aylarda, programcılar arasında bir anket yaptı. Anket sonucuna göre Python, en hızlı büyüyen programlama dili.

Stack Overflow en çok kullanılan programlama dilleri
KAYNAK : STACKOVERFLOW.BLOG

 

Grafikten anlayabileceğimiz gibi, Python kullanımı 2017 yılının sonlarından başlayarak agresif bir yükselme göstermiş. Gelecekte de Python’un bu yükselişine devam edeceği öngörülüyor.

Python’ın en fazla kullanılan programlama dili olduğunu ve yakın gelecekte de devrimsel bir farklılık olmazsa bu unvanını elinde tutacağını öğrendik. Peki ya Python web frameworklerinde durum nasıl?

Şuan en çok kullanılan Python web frameworkleri; Django ve Flask. Ancak bu diğer Python web frameworklerinin önemsiz veya işlevsiz oldukları anlamına gelmiyor. Her bir Python web frameworkü, uygulamanız için harika özellikler sunabilir.

En bilinen ve en çok kullanılan IDE (Kod Editörü) yazılımları ile meşhur JetBrains tarafından yapılan araştırmaya göre, en yaygın Python web frameworkleri şu şekilde listeleniyor.

jetbrains en çok kullanılan python web frameworkleri
KAYNAK : JETBRAINS.COM

 

Python’da 3 farklı web framework tipi mevcut. Bunların neler olduğuna ve ne için kullanıldıklarına kısaca göz atalım.

Full-Stack Framework sayesinde, uygulama geliştirmek için gerekli olan tüm araç ve paketlere sahip olabilirsiniz. Bu araçlar; MVC mimarisi, ORM’ler, yönlendiriciler, şablon oluşturma motorları, güvenlik paketleri olarak sıralanabilir. Geniş çaplı bir uygulama kodlayacaksınız full-stack bir framework seçmeniz akıllıca olacak.

Microframework ise; tek bir kaynak dosyası üzerinden uygulama kodlarken kullanılır. Paketler hazır olarak sunulmaz. Uygulamanızda gerekli olabilecek; şablon oluşturma motoru, kimlik sorgulama işlevi, yetkilendirme gibi paketleri, uygulamanıza kendiniz eklemeniz gerekir. Genelde REST tabanlı küçük uygulamalar kodlanırken tercih edilir.

Nispeten daha yeni bir teknoloji olan Asynchronous framework; büyük ölçekli eşzamanlı bağlantı kümelerinin işlenebilmesini sağlar. Asynchronous frameworkler, engellenmeyen soketleri kullanır. Bunu sağlamak içinde; Python’un eşzamansız (asyncio) kütüphanesinden yararlanırlar.

 

Web Framework Seçiminde Nelere Dikkat Edilmeli?

Web uygulamanızda, hangi frameworkü seçeceğinize karar vermeden önce, kodlamak istediğiniz uygulamanın neleri içereceğine ve gelecekte uygulamanıza neler ekleyebileceğinizi listeleyin.

Geliştirmek istediğiniz web uygulamasında, güvenlik önemliyse ve sık sorgulama yapılacaksa full-stack bir framework seçmeniz daha uygun olacaktır. Daha basit veya karmaşık olmayan bir web uygulaması geliştireceksiniz microframework kullanmayı seçebilirsiniz. Eğer web uygulamanızda aynı anda binlerce istek işlenecekse, asynchronous framework kullanmalısınız.

İLGİNİZİ ÇEKEBİLİR :  Her Yazılımcının Bilmesi Gereken En İyi ve En Popüler 10 IDE

 

En Yaygın Python Web Frameworkler

 

1. Django

Resmi Web Site | GitHub | PyPI | Full-Stack Framework

python django logo

Ücretsiz açık kaynaklı bir full-stack Python frameworkü olan Django kullanarak; en basit web uygulamasından, en geniş çaplı web uygulamasına kadar her türlü projenizi kodlayabilirsiniz. Bir web uygulamasında ihtiyaç duyabileceğiniz; kimlik doğrulama, URL yönlendirme, şablon motoru, ORM (Object-relational mapper), yönetici paneli, mail altyapısı ve veritabanı şeması gibi bir çok hazır kitaplık Django’da mevcut.

Tüm bu yerleşik özelliklerine rağmen Django, oldukça hızlı çalışır. Farklı veritabanları ile mükemmel uyumluur. Django varsayılan olarak MySQL, SQLite, Oracle, PostgreSQL desteğine sahiptir. Eğer projenizde farklı bir veritabanı kullanacaksınız, bir kaç özel kütüphane yüklemesi ile sorunsuz bağlantı kurabilirsiniz.

Django’nun diğer avantajlarını listelemek gerekirse:

  • Çok sayıda kullanıma hazır kitaplık desteği
  • Güvenli
  • Düzenli olarak güncellenir
  • Geniş dokümantasyon desteği
  • Geniş web sunucu desteği

 

2. Flask

Resmi Web Site | GitHub | PyPI | Microframework

python flask logo

Flask basit ölçekli web uygulamaları geliştirmek için tercih edilebilir. Hafif ve modüler yapıda oluşu, Flask’ın cazip bir framework olmasını sağlar. Google App Engine ile de uyumlu olan Flask ile basit ancak sağlam temelleri olan bir web uygulaması inşa edebilirsiniz.

2010 yılında yapılan ilk tanıtımından bu güne kadar tam 32 defa güncellenen Flask, bu alanda en çok güncelleme alan Python frameworklerinden biri. Ancak maalesef bazı önemli Flask eklentiler, frameworkün kendisi kadar desteklenmiyor. Bu da size gereksiz zaman kaybı yaşatabiliyor.

Flask’ın öne çıkan bazı avantajları ise şöyle:

  • Yerleşik olarak gelen hızlı hata ayıklayıcısı
  • Jinja2 şablonları
  • İstemci (client) tarafında, güvenli çerez desteği
  • WSGI 1.0 ile uyumlu
  • HTTP istek işleme
  • Herhangi bir ORM ile uyumlu
  • Unicode tabanlı
  • RESTful istek gönderme

 

3. Web2py

Resmi Web Site | GitHub | PyPI | Full-Stack Framework

python Web2py logo

Açık kaynak kodlu, ölçeklenebilir bir full-stack framework arıyorsanız, Web2py emrinize amade. Veri işlemede son derece güçlü olan Web2py ile veritabanına dayalı, güvenli uygulamalar geliştirebilirsiniz.

Web2py’nin öne çıkan avantajları ise şöyle:

  • Farklı bir çok web hosting üzerinde çalıştırılabilir
  • Gelişmiş veri güvenliği yapısı
  • Geriye dönük uyumlu
  • Rol tabanlı erişim kontrolü

 

4. Tornado

Resmi Web Site | GitHub | PyPI | Asynchronous Framework

python tornado logo

FriendFeed tarafından geliştirilen bir framework olan Tornado; büyük hacimli web projelerini, hızlı bir şekilde yönetmeye odaklanıyor. Tornado bunu sağlamak için; engellenmeyen bir giriş çıkış ağı kullanır ve C10K (10 binden fazla eşzamanlı bağlantı) sorununu çözer.

Tornado frameworkünün başlıca avantajları ise şunlar:

  • Kullanıcı oturum ve kimlik doğrulaması için yerleşik kütüphane desteği
  • Gerçek zamanlı servisler
  • Yüksek hız
  • Engellenmeyen HTTP istemcisi
  • Yerleşik şablonlar
İLGİNİZİ ÇEKEBİLİR :  Her Yazılımcının Bilmesi Gereken En İyi ve En Popüler 10 IDE

 

5. Bottle

Resmi Web Site | GitHub | PyPI | Microframework

python bottle logo

Bottle, tüm işlemleri tek bir dosya üzerinden uygular. Tasarımı gereği oldukça sade olan Bottle ile kodlama yapmak zevkli ve kolaydır. Büyük projeler yerine, mikro uygulamalar için uygundur. Genelde bilgisayar donanımı ile ilgili web uygulaması geliştiren, yazılımcılar tarafından tercih edilir.

Bottle avantajlarını şu şekilde listeleyebiliriz:

  • Yerleşik HTT sunucusu
  • Farklı bir çok veritabanı için eklenti desteği
  • WSGI sunucu desteği
  • Pythonic şablon motoru

 

6. CherryPy

Resmi Web Site | GitHub | PyPI | Microframework

CherryPy python logo

2002 yılında yayınlanan CherryPy, Python’un en eski frameworklerinden biri. Hafif ve object-oriented bir framework olan CherryPy ile; sunucu iş yükünü bölmek için, çok parçacıklı bağımsız uygulamalar oluşturabilirsiniz. Python desteğine sahip tüm işletim sistemlerinde çalışır.

CherryPy’in öne çıkan başlıca özelliklerini ise şöyle sıralayabiliriz:

  • Yerleşik olarak kullanıma sunulan, geniş eklenti sistemi
  • Birden çok HTTP sunucusunda, aynı anda çalıştırılabilir
  • Güçlü konfigürasyon sistemi
  • Android ile uyumlu
  • Gelişmiş kullanıcı yönetim araçları

 

7. Falcon

Resmi Web Site | GitHub | PyPI | Microframework

falcon python logo

Falcon, genellikle hızlı web API‘leri oluşturmak için kullanılan bir microframework. Hatta Django ve Flask ile karşılaştırıldığında, Falcon kullanarak daha hızlı web uygulamaları geliştirilebiliyor. Olumsuz yanı ise, kullanıcı oturum kontrolü, kimlik doğrulama gibi bazı işlevsel kütüphanelerin yetersiz oluşu. Web uygulama geliştiricilerinin HTTP ve REST mimarilerini daha etkin kullanabilmelerini sağlıyor.

Falcon’un avantajları ise şöyle :

  • Cython desteği ile hız artışı sunar
  • WSGI ile Unit testing
  • HTTP hata yanıtları
  • Genişletilebilir ve yüksek düzeyde optimize edilmiş kod tabanı

 

8. Pyramid

Resmi Web Site | GitHub | PyPI | Full-stack Framework

Pyramid python logo

Pyramid, az kodla çok iş yapmayı vaat eden bir framework. Pyramid’in en çarpıcı özelliği; hem küçük hem de büyük web uygulamaları yapılabilmesidir. Dokümantasyon desteği de oldukça zengin.

Pyramid öne çıkan özellikleri:

  • API geliştirme
  • URL oluşturulabilme
  • Tek dosyalı uygulamalar yapılabilmesi
  • Sonradan genişletilebilir yapıya sahip olması
  • Kimlik doğrulama ve yetkilendirme

 

9. TurboGears

Resmi Web Site | GitHub | PyPI | Full-stack Framework

TurboGears python logo

Açık kaynak kodlu, veri odaklı (data-driven) bir full-stack framework olan TurboGears, genişletilebilir web uygulamaları için tercih edilir. Kullanıcı dostu ve kolay kullanımlı şablon motoru ve esnek ORM ile birlikte kurulur.

TurboGears’ın öne çıkan avantajlarını şöyle sıralamak mümkün:

  • Çoklu database desteği
  • MVC mimarisi
  • PasteScript şablonları
  • FormEncode ile doğrulama desteği
  • SQLObject ve SQLAlchemy desteği
  • MochiKit JavaScript entegrasyonu

 

10. Hug

Resmi Web Site | GitHub | PyPI | Microframework

hug python logo

Hug; Python 3 ile API geliştirme için kullanılan bir framework. Sahip olduğu farklı kitaplıklar sayesinde, API oluşturmayı oldukça kolaylaştırır. Aynı zamanda Python 3 için kullanılabilecek en hızlı web framework.

Hug’u cazip yapan diğer avantajları ise şöyle sıralayabiliriz:

  • Dokümantasyon desteği
  • Cython ile Uyumluluk
  • Python kitaplığı (library) olarak kullanılabilmesi

 

BİR CEVAP YAZIN

E-posta hesabınız yayımlanmayacak.