Flask, Python programlama dilinde karmaşık uygulamalara göre ölçeklenebilen basit ve hızlı bir proje oluşturmak için kullanılan bir mikro çerçevedir. “Mikro çerçeve” kavramı, kitte herhangi bir araç ve kitaplık seti olmadığı, programcının görevlere bağlı olarak bunları kendisi kurabileceği anlamına gelmektedir.
Flask’a kim, ne zaman ihtiyaç duymaktadır?
Flask, Python web geliştiricileri tarafından kullanılmaktadır. Mikro çerçeve yeni başlayanlar için uygundur. Yalnızca bir Python dosyası kullanarak hızlı bir şekilde bir web uygulaması oluşturmanıza olanak tanımaktadır. Flask hem sahte projeler, hem de karmaşık bir arka uca ihtiyaç duymayan küçük sitelerin yanı sıra API‘ler ve karmaşık e-ticaret projeleri geliştirmek için kullanılabilmektedir. Bu nedenle de çerçevenin çekirdeği, farklı görevler için ölçeklendirilebilmektedir. Geliştirici kullanmak istediği kitaplıkları ve araçları kendisi seçmelidir. Bunu yapmak için uzantı paketlerini de eklemeniz gerekecektir.
Flask nasıl çalışmaktadır?
Flask Çerçevesi, bir şablon işleme uygulaması olan Jinja2’yi ve WSGI (sunucu tarafında çalışan bir Python programı ile web sunucusunun kendisi arasındaki etkileşim için bir standart) ile çalışmak için bir araç olan Werkzeug’u kullanmaktadır. Python, yalıtılmış bir ortam oluşturmak için ise, Virtualenv modülünü kullanmaktadır. Flask web çerçevesi şunları desteklemektedir;
- Birim testi – programın kaynak kodunun tek tek modüllerinin doğruluğunun kontrol edilmesi;
- Google App Engine – Google’ın altyapısı üzerinde uygulama oluşturmak ve çalıştırmak için güçlü bir platform;
- RESTfull mimarisi, esnek ve ölçeklenebilir bir web oluşturmak için uygun bir mimari ilkeler dizisidir.
Flask, saldırgan bir sayfaya kötü amaçlı bir komut dosyası yerleştirdiğinde XSS saldırılarına karşı korumaktadır. Ayrıca güvenli çerezlerle çalışmaktadır. Werkzeug aracı basit bir web sunucusu sağlamaktadır.
Flask’ın avantajları ve dezavantajları
Avantajlar
- Küçük statik web siteleri ve hafif web uygulamaları oluşturmak için en iyi web çerçevesi olarak kabul edilmektedir.
- Görevler için araçların çoğunu düzenleyebilirsiniz.
- Sezgisel bir söz dizimine ve basit bir yapıya sahiptir.
- Hata ayıklama ve test etme araçları vardır. Birim testleri, yerleşik bir geliştirme sunucusu, bir istek işleyici ve bir hata ayıklayıcıdan oluşmaktadır.
- Flask, çok sayıda ayrıntılı belge içermektedir.
- Yeni sürüm 2.0’dan. Programın akışını engellemeden işlemlerin yürütülmesine yardımcı olan bir teknoloji olan eş zamansızlığı desteklemektedir. Bu durum da, performansı ve hızı artırmaktadır.
Dezavantajları
- Flask ile, veritabanına bağlanmak, form verilerini doğrulamak ve dosya yüklemek için uzantıları kullanmanız gerekmektedir.