Mobilhanem.com yepyeni bir yazı serisi ile birlikteyiz. Bu seride Python da bir micro framework olan Flask Framework ile baştan başlayıp projeler geliştireceğiz. Heyecanlı mıyız hadi başlayalım o zaman.
Flask Serisi vs Django:
Eminim birçoğunuz belki bu frameworku ilk defa duyuyorsunuz yada sadece bir yerlerde duydunuz. Bilenleriniz varsa da neden Django değilde Flask anlatıyorsunuz diyorsunuzdur. Hemen sorunuza cevap vereyim;
Çünkü Flask öğrenilmesi çok kolay ve sade bir framework. Flask ile çok kısa zamanda güzel projeler yapabilirsiniz, ayrıca Flask öğrenmek için çok iyi Python bilmenize gerek yok. Ama Django, Flask oranla çok daha zor ve karmaşık bir yapıya sahip.
Ayrıca Flask da Django gibi jinja template üzerine kurulu. Flask öğrendiğiniz zaman Django öğrenmekte çok zorluk çekmeyeceksiniz. Hala Django eğitimi isteyenler için söylüyorum Flask eğitiminden sonra Django eğitimine başlayacağız. Flask eğitimini Django hazırlık olarak görebilirsiniz. Bu soruları cevaplandırdığımıza göre artık Flask öğrenmeye başlayalım.
Flask Nedir?
Flask Web uygulamalarını geliştirmemizi sağlayan %100 Python ile yazılmış bir micro frameworktur. Küçük bir framework olmasına karşın oldukça hızlı bir frameworktur. Bu sayede çok pratik ve kısa sürede güzel uygulamalar yapabilirsiniz.
Flask Öğrenmek İçin Neler Bilmem Gerekiyor?
Dersin başında da bahsettiğim gibi Flask küçük bir frameworktur ve oldukça basit bir frameworktur. Bu seride anlattıklarımı anlamak için sadece
Temel Python ve HTML bilginizin olması yeterli. Eğer güzel tasarımlar oluşturmak istiyorsanız Css, Bootstrap bilmeniz gerekiyor frontend için ama sadece backend tarafını yazacaksanız sadece temel Python bilmeniz yeterli olacaktır. Ne duruyoruz haydi başlayalım o zaman.
İlk önce Flask’ı virtualenv ortamında kurmayı göstereceğim daha sonra normal bilgisayara kurmayı göstereceğim. Sizden isteğim virtualenv ortamında kurup öyle devam etmeniz başta biraz sinir bozucu olsa da alıştığınız da çok seveceksiniz.
Virtualenv Nedir?
Virtualenv şöyle anlatayım daha önce işletim sistemine sanal olarak bir işletim sistemi kurduysanız virtualenv’ yide Python sanal hali olarak düşünebilirsiniz. Bilmeyenler için anlatayım sanal olarak kurduğunuz bir sistem veya işletim sistemi sizin normal sisteminizi etkilemez. Yani siz istediğiniz kütüphaneyi kurup kaldırabilirsiniz normal sistem bundan etkilenmez.
Neden Virtualenv Kullanmalıyım?
Çünkü virtualenv bazen hayat kurtarır nasıl mı şöyle anlatayım. Python ilk dersinde Python anlatırken, Python ‘un açık kaynak bir yazılım olduğunu ve çok fazla geliştiricisi olduğunu söylemiştik. Bu sayede kütüphaneler versiyonları sürekli değişiyor. Biz bir kütüphane kaldırdığımızda veya yüklediğimiz zaman bazen birbiriyle uyumlu olmayabiliyor. Bu da bazen çok fazla sizi uğraştırabilir ve çok fazla zaman kaybına neden olabilir. İşte bu yüzden virtualenv hayat kurtarır ve virtualenv kullanmalısınız.
Virtualenv Kurulumu
Virtualenv kurulumu için ben pip kullanacağım merak etmeyin pip ne olduğunu hemen anlatayım;
Pip Nedir?
Pip python ile hazır gelen bir paket yöneticisidir. Peki ne işe yarar pip Python ile birlikte hazır gelmeyen kütüphanelerin, framework vb. bağımlılıkları kurmanızı yönetmenizi sağlayan bir paket yöneticisi aracıdır. O zaman ilk önce sistemimizde pip ‘in kurulu olup olmadığını ve kullanılabilir olduğunu kontrol edelim.
pip --version
Tamam çok güzel sistemimizde pip kurulu. Peki pip kurulu değilse?
Pip kurulum
Eğer pip kurulu değilse o zaman şu şekilde kurulumu yapabilirsiniz.
python get-pip.py
Eğer bu şekilde bir ekran alırsanız pip başarılı bir şekilde kuruldu demektir. Dilerseniz pip sürümünü güncelleyebilirsiniz.
Pip Güncelleme
python -m pip install --upgrade pip
Bende zaten son sürüm kurulu olduğu için bu şekilde bir ekran aldım. Sizde eğer son sürüm yüklü değilse son sürümü yükleyecektir.
Peki pip ile sadece paket mi kurabiliyoruz? Tabi ki hayır, biz başta pip tanımlarken pip ‘in bir paket yöneticisi olduğunu anlatmıştık.
Pip Paket listeleme
Bu şekilde sistemimizde kurulu olan paketleri versiyonları ile birlikte listeledik.
Pip Paket kaldırma
pip uninstall numpy
Bu şekilde numpy isimli kütüphaneyi kaldırmış olduk.
O zaman pip kullanarak virtualenv kuralım onun için sanal ortamı kuracağımız yani virtualenv kuracağımız klasörü oluşturalım;
Şimdi klasörün içinde olduğumuza göre artık virtualenv kuralım bunun için pip öğrenmiştik.
Başarılı bir şekilde virtualenv kurduk şimdi klasörün içine gidip kontrol edelim.
Görüldüğü gibi başarılı bir şekilde sanal ortam oluşturduk. Dilerseniz içine girip bakalım neler var bunun için lib klasörünü açalım.
Görüldüğü gibi python bütün standart kütüphanelerini indirdi bize. Peki bu bizim için yeterli mi tabi ki değil biz başta pip anlatırken standart olmayan kütüphanelerimizi de kurabileceğimizi söylemiştik. Zaten biz Flask göreceğimiz için Flaskı indirmemiz gerekecek. O zaman flask kuralım ama bunun için ilk önce sanal ortamımızı active etmemiz lazım ;
Sanal ortamımız hazır olduğuna göre artık Flask indirebiliriz.
Bu şekilde bir çıktı aldıysanız Flask başarılı bir şekilde kuruldu demektir. o zaman ne yapalım artık sanal ortamdan çıkalım 🙂
Başarılı bir şekilde sanal ortamımızı kurduk ve Flask Framework ekledik. Artık virtualenv projeniz hazırsa herhangi bir ide açıp projemizi yapabiliriz. Ide’ ler için buraya bakabilirsiniz size tavsiyem Visual Studio Code kullanın.
Eğer siz sanal olarak kurmak istemiyorsanız. Bundan sonra ki kurulum aşamalarını yapabilirsiniz.
Flask kurulumu
Flask Kurulumu:
Flask windows için kurulumu;
pip install Flask
diyerek bilgisayarıma Flask’ı indirdim ve kurdum. Ben uygulamaları geliştirmek için Visual Studio Code kullanacam siz Pycharm, sublimtext vb. editörler kullanabilirsiniz.
Eğer Visual Studio Code kullanacaksanız bu adresten ulaşabilirsiniz kullanımı tamamen ücretsizdir.
Şimdi Küçük bir uygulama yapalım;
Flask İlk Uygulama
ilk önce framework projeye dahil edelim;
from flask import Flask
Flask Framework dahil ettik.
app = Flask(__name__)
app adında uygulamayı oluşturduk.
if __name__ ==”__main__:
satırı ile uygulamamızı kontrol ettik.
app.run(debug =True)
satırı ile uygulamayı çalıştırdık burada debug=True yazmamızın sebebi web sitemizde yaptığımız syntax vb. hataları almamızı sağlıyor.
Kodların toplu hali şu şekilde;
from flask import Flask app = Flask(__name__) if __name__ ==”__main__: app.run(debug =True)
Hemen projeyi çalıştıralım;
Eğer bu şekilde bir çıktı alırsanız uygulamanız sorunsuz çalıştı demektir. Şimdi çıktıda ki linke tıklayarak uygulamamıza gidelim.
Bu şekilde bir çıktımı aldınız. Hemen korkmayın projeniz başarılı bir şekilde çalışmış demektir.
Biz böylece web uygulamamızı oluşturmuştuk peki niye Not Found şeklinde bir hata aldık. Flask Framework her request karşılık bir response geliyor ve biz burada http://localhost:5000/şeklinde bir request çalıştırdık. Fakat bu isteğe yanıt olarak bir response vermedik bu yüzden Not Found hatası aldık. Peki nasıl yapacağız. Bunun için Python da decoreter kavramı ile çözeceğiz. Nasıl mı? Biz her request isteğini bir decoreter ile yaptığımız zaman decoreter bir fonksiyon çalıştıracak ve bu sayede bir response değer döndürmüş olacağız.
Büyük bir ihtimalle şimdi kafanız karışmıştır. Hemen telaş yapmayın siz şimdilik genel yapıya bakın. İleri ki derslerde mantığı çok iyi anlayacaksınız bunun için sizden tavsiyem decoreter mantığını öğrenmeniz. Bu şekilde her request karşılık bir responsive oluşturacağız hemen başlayalım;
@app.route("/")
burada “/” vermemizin sebebi http://localhost:5000/ adresinin aslında bir kök dizin bunun için ayrıca kök dizine “/” ile de ulaşabiliriz.
Biz bir request oluşturduk şimdi bu request karşılık bir response oluşturalım bunuda Python fonksiyonlar yardımı ile yapacağız.
def index(): return "Merhaba Dünya"
Biz ne yaptık biz bir decoreter mantığı ile bir request yaptık. Ve bu request karşılık fonksiyon yardımı ile bir response değeri döndürdük. Burada çok dikkat etmeniz gereken bir yer var. @app.route(“/”) ile request yaptıktan hemen sonra hemen o requst kaşılık gelecek response değerini döndüren fonksiyonu yazmamız gerekiyor.
Konu çok dağılmadan kodlarımızı toparlayıp projeyi çalıştıralım.
from flask import Flask app = Flask(__name__) @app.route("/") def index(): return "Merhaba Dünya" if __name__ ==”__main__: app.run(debug =True)
Hemen uygulamayı çalıştıralım;
Başarılı bir şekilde uygulamamızı çalıştırdık.
Burada başka bir konu daha Flask default olarak localhost ta 5000 adresinde çalışıyor dilerseniz bunu değiştirebilirsiniz.
Hemen göstereyim;
app.run(debug=True,port=2000)
Projeyi tekrar çalıştırdığımızda localhost 2000 adresinde çalıştığını göreceksiniz.
Mobilhanem.com da Pyhon da Flask Framework serisinin ilk dersinin sonuna geldik. Bir sonraki yazımızda Flask Framework Template konusunu işleyeceğiz. Eksik yada yanlış gördüğünüz yada anlamadığınız yerler için çekinmeden ulaşabilirsiniz. Bir sonraki yazıda görüşmek üzere.
108