Python Bottle Framework
Bottle, web uygulamaları geliştirebilmenizi sağlayan bir web-frameworktür. Python’un standart kütüphaneleri dışında bir kütüphaneye gerek duymaz, tek dosya olarak dağıtılır.
Başlayalım: “Hello, World!”
Hemen klasik örneğimizi nasıl yazabileceğimize bakalım.
İşte, bir web uygulaması yazmak bu kadar basit! Çalıştırıp ‘http://localhost:8000’ adresini açarsanız uygulamanın çalıştığını göreceksiniz. Hemen bir resim ekleyelim,
Gördüğünüz üzere, istediğimiz sonucu elde ettik. Eğer ‘http://localhost:8000/hello’ şeklinde bir adresi açarsanız, yine aynı sonucu alacaksınız. Nasıl çalıştığını açıklayalım,
@route
dekoratörü ile bir link ile biraz kodu birleştiriyoruz.(Çok saçma bir cümle oldu… :P) Burada, /hello
ve /
ile hello()
fonksiyonunu birleştirdik. Trayıcı bir URL istediğinde, önceden belirlenmiş ilişkili olan fonksiyon çağrılır ve fonksiyonun döndürdüğü değer tarayıcıya gönderilir. İstediğiniz kadar @route
dekoratörünü kullanabilirsiniz
Son satırdaki run()
fonksiyonu, geliştirme amaçlı built-in bir server çağırır. Testler için idealdir, herhangi bir setup vs. gerektirmeden test yapabilirsiniz.
Debug modu, geliştirme sürecinde programcıya çok yardımcı olabilir. Fakat uygulama kullanıma sunulduğunda genelde kapatılır.
Direk run()
fonksiyonu ile uygulamayı çalıştırmış olmamız biraz garip gelmiş olabilir. Siz, @route
dekoratörünü bir kere kullandığınızda, otomatik olarak global bir Bottle()
sınıfı oluşturulur ve buraya eklenir. Hemen sınıfı örnekleyerek bir uygulama yazalım.
Pek sıkıcı bir örnek, daha ilginç bir şeyler yapalım.
say_hello()
fonksiyonu, name
adında bir parametre alıyor ve sonuna ‘hello’ eklediği bir string döndürüyor. Ne olacağını tahmin ettiğinizi düşünüyorum
Tabii ki, bu çok basit bir uygulama ama genel olarak bottle framework ile nasıl web uygulamaları geliştirebileceğimizi gördük.
GET ve POST
GET ve POST metodlarına birlikte kullandığımız bir örnek verelim,
Hemen çalıştırıp bakalım,
Gördüğünüz üzere, bir web uygulaması yazmak bu kadar kolay. Üstelik, Python’un bize sunduğu muazzam geliştirme olanaklarından hiçbir şey eksilmiyor
Bu yazı biraz basit kaldı, giriş niteliğinde bir şeyler yazmak istemiştim zaten. Ayrıntılı dökümanlara kendi sitesinden ulaşabilirsiniz.