Flask Dersleri

Flask Framework Giriş, Kurulum ve İlk Uygulama

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.

 

 

104

Cahit İşleyen

Data Scientist at @Embedica.ai
Python ve Linux sever.
Çay tiryakisi

5 Yorum

  • Merhabalar,
    Öncelikle paylaşım için teşekkürler. Fakat Command window’da(yönetici modu) komutlar tanınmıyor. Pyton kurulu, ama AppData(gizli klasör) içinde kalıyor. Pyton command window da da komutlar tanınmadı. Acaba, pipe kurulumu, versiyon görme gibi işlemler için command window ile bilgi verir misiniz?

  • Merhaba,
    öncelikle emeğiniz için teşekkürler,
    virtualenv kurulumu ile ilgili pip kullanımında sıkıntı yaşıyorum. Command ekranında python get-pip.py yazdıgımda hiç tepki vermiyor. Sorun ne olabilir, ne yapabilirim?

  • Hocam merhaba, virtualenv env komutunu yazınca hata alıyorum ne yapmalıyım acil cevap verirseniz sevinirim.

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?