Python Flask ile Web Sitesi Oluşturmak

kusha · 03 Ağustos 2026 · 6 dk okuma

Flask, Python'da web sitesi/uygulaması yazmak için kullanılan hafif bir web çatısıdır (framework). Django'ya göre çok daha az "hazır kurulu" özellik sunar ama bu sayenin küçük projelerde daha az kod ile hızlıca sonuca ulaşmanızı sağlar. Bu derste Flask'ın template mantığını kullanarak temel bir web sitesi kuracağız.

Kurulum ve Klasör Yapısı

pip install flask

Flask, HTML dosyalarınızı varsayılan olarak proje klasörünüzdeki bir templates adlı alt klasörde arar — bu klasör adını değiştirmediğiniz sürece HTML dosyalarınızı mutlaka oraya koymanız gerekir.

proje/
├── app.py
└── templates/
    ├── index.html
    └── about.html

Temel Uygulama

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def home():
    return render_template("index.html")

@app.route("/hakkimda")
def hakkimda():
    return render_template("about.html")

if __name__ == "__main__":
    app.run(debug=True)
  • @app.route("/"), bu fonksiyonun sitenizin ana sayfasında (/) çalışacağını belirtir.
  • render_template(...), templates/ klasöründeki ilgili HTML dosyasını okuyup tarayıcıya döndürür.
  • debug=True, geliştirme sırasında kod her değiştiğinde sunucunun otomatik yeniden başlamasını sağlar — üretim ortamında bu parametre kapatılmalıdır.

Python Değişkenini HTML'e Göndermek

Flask'ın asıl gücü, statik HTML yerine dinamik veri gösterebilmesidir. Bir Python değişkenini template'e göndermek için:

@app.route("/")
def home():
    dolar_kuru = 34.12
    return render_template("index.html", dolar=dolar_kuru)

HTML tarafında (Jinja2 template diliyle), bu değişkeni çift süslü parantezle kullanırsınız:

<h2>Güncel Dolar Kuru: {{ dolar }}</h2>

Gerçek Zamanlı Veriyle Birleştirmek

Bu değişkeni sabit yazmak yerine, önceki derslerde gördüğümüz web scraping fonksiyonlarından birini çağırarak dinamikleştirebilirsiniz:

from destek import dolar_kuru_cek

@app.route("/")
def home():
    return render_template("index.html", dolar=dolar_kuru_cek())

Dikkat: bu şekilde her sayfa yenilendiğinde hedef siteye yeni bir istek atılır — ziyaretçi sayınız arttıkça bu, hem yavaşlığa hem de hedef sitenin sizi engellemesine yol açabilir. Üretim ortamında bu tür veriler genelde arka planda ayrı bir script ile periyodik olarak çekilip bir veritabanında/dosyada önbelleğe alınır, web sitesi ise doğrudan hedef siteye değil bu önbelleğe bakar.

Sırada Ne Var?

Sırada, web geliştirmeden uzaklaşıp birden fazla Python scriptini tek bir .bat dosyasıyla nasıl aynı anda çalıştırabileceğinizi göreceğiz.