07. Web Geliştirme

Bir web uygulama geliştiricisinin hayatını kolaylaştıran web framework’leri, geliştiricinin yapısal bir uygulama geliştirilmesine olanak sağlar. Bilinen genel problemlere otomatik çözümler sağlar. Bu sayede daha az kodla çok daha iyi kodları üretmenizi sağlayan yapılardır. Birçok programlama dilinde birçok web framework geliştirilmiştir. Bu bölümde ön plana çıkan Python Framework’lerine ayrılmıştır.

Sanic

07.01. Django

Django, Python ve web framework deyince akla gelen ilk framework’lerden biridir. Gerekli tüm alt kütüphaneleri kapsayan gelişmiş bir framework’tür. Örneğin, kimlik doğrulama, URL yönlendirme, şablon altyapısı, ORM (Object Oriented Mapping), kolay güvenlik, esneklik gibi özellikleri ile kullanmayı kolaylaştırır. Django, veritabanlarından  PostgreSQL, MySQL, SQLite ve Oracle direkt desteklediği gibi ek sürücülerle başka veritabanları kullanmaya da olanak sağlar.

07.02. Flask

FlaskWerkzeug ve Jinja 2 tabanlı bir microframework’tür. Bir Ruby framework’ü olan Sinatra’dan etkilenmiştir. Burada micro kelimesinin anlamı Flask’in ana modülünün basit ama genişletilebilir olduğunu gösterir. İhtiyaca göre, farklı modüllerle adapte olabilir. Örneğin, bir Veritabanı işlemi, form doğrulama, kimlik doğrulama ve benzeri işlevler ana module’e ek olarak yüklenir. Django birçok probleme kendi kütüphaneleri ile destek verir, Flask ise istediğiniz kütüphaneyi çekirdeğine bağlamaya destek verir. Proje bazlı olarak her iki çözümde kullanılabilir.

07.03. Tornado

Tornado, bir web framework’ü ve asenkron bir ağ kütüphanesidir. Asenkron çözümler aynı anda binlerce kullanıcıya destek vermeyi amaçlar ve günümüzde farklı dillerde web frameworklerinin de özelliğidir. Örneğin, ASP.Net Core ve Node.js gibi framework’ler benzer mantıkla çalışır. Tordano, 10,000’den fazla bağlantıyı yönetebileceğini belirtmektedir. Özellikle uzun sorgulama, WebSockets ve her kullanıcı için uzun bağlantı gerektiren uygulamalar için idealdir.

07.04. Sanic

Sanic, uvloop üzerine kurulu bir web framework’tür. Asenkron istek yönetimi sayesinde HTTP yanıtları hızlı bir şekilde vermek için tasarlanmıştır. Sanic hızlı cevap verme düşünülerek yazılmış bir framework’tür. Bir işlem ve 100 bağlantı üzerine yapılan performans ölçümlerinde, saniyede 33,342 isteği yanıtlayabilmiştir.

07.05. Dash

Dash, analitik web uygulamaları oluşturmak için kullanılan bir web framework’üdür. Özellikle web geliştirme ile aşina olmayan ama Python bilen veri bilimcileri için çok kullanışlıdır. Dash uygulamaları, Flask’ı çalıştıran ve HTTP istekleri üzerinden JSON paketleri ile iletişim kuran web sunucularıdır. İstemci yani tarayıcı tarafında ise Ploty.js ve React kullanır. Dropdown, slider ve grafikler gibi modern UI elementlerine sahiptir.