Connect with us

Hi, what are you looking for?

Flask

Python: Flask Nasıl Kurulur? [30 Adım]

5/5 - (1 vote)

Flask Nasıl Kurulur?

Bu yazımda Python Framework’u olan Flask ile çok basit bir uygulama yapmayı ve bunu İnternet’e, yani kanlı canlı bir sunucuya en kolay şekilde atıp orada çalıştırmayı/yayınlamayı göstereceğim.

Öncelikle size bir bilgisayar, buna kurulu python (linux veya mac’se zaten kurulu.), sitenizi yayınlamanız için bir sunucu (mükemmel olmak zorunda değil), sunucu kontrolü için biraz teknik bilgi ve PuTTy ve WinSCP adlı uygulamalar lazım.

Bilgisayarınız windows ise ve python yoksa şuradan python’u kurup geri bu yazıya dönünüz.

Şimdi ilk olarak bir Python projesi oluşturalım.

Projenizi oluşturduğunuzu düşünerek Flask hakkında biraz bilgi vermek istiyorum.

Flask, Python’da yazılmış bir web framework’udur. Django adlı diğer Python framework’üne göre daha hafif ve yapılabilecek işlemler daha sınırılıdır. Sınırlı dediysem korkmayın, flask ile bir blog bile geliştirebilirsiniz.

Sadece sizin hayal gücünüz ile sınırlı.

  • Esnek,
  • Kullanımı,
  • Öğrenimi
  • URL yönlendirmeleri django’ya göre daha kolay bir framework’dür.

Hadi başlayalım.

pip install Flask komutu ile konsol ekranımızdan kütüphanemizi indirelim.

flask-nasil-kurulur
Flask Nasıl Kurulur?

from flask import Flask

app = Flask(__name__)

@app.route(‘/’)

if __name__ == ‘__main__’:

run

localhost:5000

Flask uygulamamız localhost üzerinde çalıştı.


Buraya kadar olan kodlar:

from flask import Flask
"""Flask indirmemiz bitti projemize import ettik. Yani artık bu projede Flask'ı kullanabileceğiz."""
"""Bazı durumlarda 'pip install --user Flask' ile de kurmanız gerekebilir. Permission denied hatası verdiği görülmüştür."""

"""Flask kütüphanemizin flask sınıfını kullanarak bir nesne oluşturalım. Mantığını öğretmekle zamanınızı çalmayacağım. 
Zaten biliyorsunuzdur yayına alma safhasıan geldiyseniz."""
app = Flask(__name__)

#Şimdi de kök dizinimizi, yani ana URL'mizi tanımlayalım. localhost'da aktif olacaktır.
@app.route('/') #URL tanımlama kısmımız
def mesaj(): #mesaj adlı bir fonksiyon tanımlıyoruz.
    return 'Selamin Aleykum' #Ve ekrana dönecek olan değeri yazıyoruz. Biz ekrana selam döndürelim.

#Bu kodlar ise bizim dosyamızı çalıştırmamızı, yani ayıklayıp yayınlamamızı sağlıyor.
"""
if __name__ == '__main__':
    app.debug = True
    app.run(host= 'localhost', port= 5000)
""" 
#Localde çalıştıracağımız için host'u localhost seçiyoruz ve portu 5000 yapıyoruz.
#Web'de bu 80'dir ve bu kodlara gerek yoktur.

Hadi şimdi de sunucu işlemlerimizi yapalım.

Sunucunuzun olduğunu varsayarak devam ediyorum. Mutlaka bir sunucunuz olması şart, çünkü root izinleri gerekecek. Bir hosting’de bunu yapmanız mümkün değil.

PuTTy programını şuradan indirelim ve sunucu kullanıcı adımız ile şifremizi yazarak giriş yapalım. (Root kullanıcısı ile girmeye dikkat ediniz.)

sudo apt update;sudo apt install apache2;apache2 -version

Komut satırını sunucumuza yapıştırarak Apache’yi indirelim ve sunucumuza kurmuş olalım.

Kuruluyor:

Ve kuruldu:


Şimdi ise güvenlik duvarımızı konfigüre edelim:

sudo ufw app list;sudo ufw allow 'Apache'

Komut satırı bu işi yapacaktır:


Apache konfigürasyonumuzu yapalım:

sudo systemctl status apache2

mod_wsgi indirelim ve aktif edelim:

sudo apt-get install libapache2-mod-wsgi python-dev

Ve kuruldu:


Flask uygulamamızı oluşturalım:

cd /var/www;sudo mkdir site;cd site

Burada dikkat etmeniz gereken bir nokta var; “site”. Klasör olarak istediğiniz adı vermelisiniz, bir daha değiştiremeyeceğinizi bilerek bu işlemi yapın. Size önerim, bu noktadan itibaren kalan adımlarda bol bol deneme yaparak mantığını iyice anlamanız.


Flask’ı sunucumuza kuralım:

sudo apt-get install python-pip;sudo pip install Flask

Ve kuruldu:


Şimdi sıra WinSCP uygulamamızı kullanmaya geldi. Normalde sunucu ile ilgili teknik bilgisi az olanlar FTP üzerinden PuTTy kullanarak çok kolaylıkla sıradaki işlemi yapabilir ama ben SSH kullananlar için ayrıca bir yöntem kullanarak devam ediyorum. Herkes bir FTP hesabı olan sunucu alamayabiliyor.

Şuradan uygulamamızı indirelim ve kurup açalım (PuTTy’de kaydettiğiniz bilgiler varsa buraya aktıracaktır.):

SSH olduğu için SFTP’i seçip, sunucu ip, kapı numarası(22), kullanıcı adı ve şifreyi girerek yönetim paneli olmayan sunucumuzun bütün dosyalarını bir GUİ (grafik ara birimi) üzerinde görebilir ve düzenleyebiliriz. Hadi yine iyisiniz, FTP hesabına para vermekten kurtardım sizi 🙂

/var/www/site klasörümüzü oluşturmuştuk hatırlarsanız. Projemizi bilgisayarımızdan oraya atalım:

Ve bir iç klasör oluşturarak dosyaları da oranın içine atalım:

Artık burası ile işimiz bitti.


Tekrardan PuTTY’mize gelelim. Sanal hostumuzu konfigüre edelim ve aktifleştirelim:

sudo nano /etc/apache2/sites-available/site.conf

Buraya yapıştıracağınız kodlar (Site klasörünüze göre düzenleyiniz.):

<VirtualHost *:80>
		ServerName ip adresiniz
		ServerAdmin [email protected]
		WSGIScriptAlias / /var/www/site/site.wsgi
		<Directory /var/www/site/site/>
			Order allow,deny
			Allow from all
		</Directory>
		Alias /static /var/www/site/site/static
		<Directory /var/www/site/site/static/>
			Order allow,deny
			Allow from all
		</Directory>
		ErrorLog ${APACHE_LOG_DIR}/error.log
		LogLevel warn
		CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
CTRL+X kombinasyonuyla dosyamızdan çıkalım (“Y” diyin.)

sudo a2ensite site;systemctl reload apache2

Kod satırı ile sitemizi Apache’ye tanıtalım ve Apache’yi yenileyelim:


Şimdi ise .wsgi dosyamızı oluşturalım.

sudo nano site.wsgi

Not: konumunuza dikkat edin. /var/www/site/ içerisinde olmanız gerekmekte.

Dosya içine yazacağınız kodlar:

import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/site/")

from site import app as application
application.secret_key = 'Gizli bir anahtar bırakabilirsiniz.'

Son kontrollerimizi yapalım ve Apache’mizi yeniden başlatalım:

sudo service apache2 restart

Sonuç:


Flask Nasıl Kurulur? dersi için yapacağınız yorumlar benim için çok önemli, yazmaktan çekinmeyin.

Tüm Kodlar: GitHub

7 Comments

7 Comments

  1. Mehmet Can Hanayli

    19 Nisan 2020 at 19:19

    Emeğine sağlık çok güzel özenle hazırlanmış bir yazı.

    Tebrik ederim.

  2. Dijital Nöron

    3 Mayıs 2020 at 14:46

    Çok eğitici ve öğretici bir yazı olmuş hocam. Elinize sağlık.

  3. Deep Bucak

    4 Mayıs 2020 at 20:23

    Başarılı ve açıklayıcı olmuş hocam, devamını bekliyoruz.

  4. Anılcan

    10 Mayıs 2020 at 18:51

    Sayenizde kod yazabiliyorum teşekkür ederim aşırı zevkli ve kalıcı adamsın !

  5. Mert

    3 Aralık 2020 at 14:40

    Flask merak ettiğim python modeüllerinden birisi idi. Oldukça güzel anlatmışsınız. Aklımdaki sorulara cevap olmakla birlikte Flask öğrenme isteğim de arttı. Teşekkürler 🙂

  6. Tolga

    10 Aralık 2020 at 00:26

    Öncelikle elinize sağlık. Çok ama çok yararlı bir yazı. Serverımı ayarladım. Yukarıda yazılanların tamamını yaptım (tek farkpip yüklenmediğinden pip3 kurdum.) putty üzerinde hiçbir hata almama rağmen server ip adresini internet tarayıcısına yazdığımda 404 hatası alıyorum. Neden olabilir?

    • Furkan Ege

      15 Aralık 2020 at 11:45

      Yüksek ihtimal öyle yapmamışsınızdır fakat sunucu konfigürasyonlarını kendi alan adınıza ve projenize göre yaptınız değil mi?

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bunları da beğenebilirsiniz

Twitter

5/5 - (3 votes) Snapchat tarafından tasarlanan hikaye formatı, günümüzün en ünlü sosyal ağlarının her birinde yoluna devam etti. Fleets’ler; Instagram, Snapchat veya Facebook...

Açık Kaynak

Oyla post Covid-19 pandemisinin hayatımıza işlediği bu zamanlarda uzaktan çalışma daha kalıcı hale geldi. Şirketler genel seçeneklerden daha düşük maliyetli, daha fazla gizlilik ve...

WordPress

5/5 - (2 votes) In this article, we have researched and examined the beautiful GitHub WordPress Themes for you. WordPress… So the most used...

Bilgisayar

Oyla post SWAP Alanı Nedir? Özellikle sunucularda ve düşük donanımlı linux sistemlerde kullanılmasıyla anılan SWAP alanı hakkındaki yazımıza hoş geldiniz. Bu yazımızda size SWAP...