
Python Matplotlib ve Seaborn İle Veri Görselleştirme
31 Temmuz 2026
Python Django Framework Sıfırdan Proje Oluşturma Rehberi
31 Temmuz 2026Günümüzde web uygulamaları, kullanıcıların ihtiyaçlarına hızlı ve etkin bir şekilde cevap verebilmek için API'lere ihtiyaç duymaktadır. Python Flask, hafif yapısı ve esnekliği sayesinde hızlı bir şekilde web API'leri geliştirmeye olanak tanır. Bu makalede, Flask kullanarak basit bir web API'si geliştirme sürecini adım adım ele alacağız.
İçindekiler
Flask Nedir ve Neden Kullanmalıyız?
Flask, Python programlama dili ile yazılmış, hafif ve esnek bir web uygulama çatısıdır. İlk olarak 2010 yılında Armin Ronacher tarafından geliştirilen Flask, WSGI (Web Server Gateway Interface) tabanlı bir framework olup, mikro mimari yapısıyla dikkat çekmektedir. Flask, basit projelerden karmaşık uygulamalara kadar geniş bir yelpazede kullanılabilir. Kullanımı kolay ve hızlı bir geliştirme ortamı sunması, özellikle yeni başlayanlar için büyük bir avantajdır.
Flask’ın popülaritesinin arkasında birçok neden bulunmaktadır. Öncelikle, minimal bir yapı sunması sayesinde geliştiricilere büyük bir esneklik tanır. İhtiyacınıza göre modüller ekleyerek veya çıkararak projenizi şekillendirebilirsiniz. Ayrıca, Flask, geniş bir eklenti ekosistemine sahiptir ve bu sayede veri tabanı yönetimi, oturum yönetimi, form doğrulama gibi pek çok işlevi kolayca entegre edebilirsiniz. Ayrıca, RESTful API geliştirmek isteyenler için de mükemmel bir yapı sunar, çünkü gerekli olan tüm bileşenler minimal bir kurulumla kullanılabilir hale gelir.
Gerekli Kurulumlar ve Başlangıç Ayarları
Flask ile bir web API geliştirmeye başlamak için öncelikle gerekli ortamı kurmanız gerekmektedir. Flask uygulamalarını geliştirmek için Python’un en son sürümünün bilgisayarınızda yüklü olması gerekmektedir. Python’u kurduktan sonra, Flask’ı yüklemek için pip (Python Package Installer) kullanabiliriz. Aşağıdaki komutla Flask kütüphanesini kurabilirsiniz:
pip install Flask
Bunun yanı sıra, sanal bir ortam oluşturmak, projeyi yönetmek açısından faydalı olacaktır. Sanal ortam oluşturmak için venv veya virtualenv gibi araçları kullanabilirsiniz. Sanal ortamınızı oluşturduktan sonra, onu aktif hale getirin ve Flask’ı bu ortamda kurarak bağımlılıklarınızı yalıtın. Örneğin:
python -m venv myenv
source myenv/bin/activate # Linux/Mac
myenvScriptsactivate # Windows
Kurulumun ardından, basit bir Flask uygulaması oluşturmak için bir Python dosyası oluşturmalısınız. Örneğin, app.py isimli bir dosya oluşturarak aşağıdaki basit kodu ekleyebilirsiniz:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Merhaba, Flask!
Uygulamanızı çalıştırmak için terminalde aşağıdaki komutu kullanarak Flask’ı başlatabilirsiniz:
flask run
Bu aşamada, uygulamanız yerel olarak çalışmaya başlayacak ve tarayıcınızdan http://localhost:5000 adresine giderek “Merhaba, Flask!” mesajını görebilirsiniz. Flask ile başlamak bu kadar basit!
Basit Bir API Oluşturma Adımları
Python Flask ile basit bir web API oluşturmak için öncelikle Flask kütüphanesini projeye dahil etmemiz gerekiyor. Bu, Python’un minimal web framework’ü olarak nitelendirilmektedir ve hızlı bir şekilde RESTful API geliştirmeye olanak tanır. İlk adımda, Flask uygulamamızı oluşturmak için gerekli kodları yazmalıyız. Aşağıdaki örnek, basit bir “Hello, World!” API’si oluşturmaktadır:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/hello', methods=['GET'])
def hello_world():
return jsonify({'message': 'Hello, World!'})
Bu kod parçası, bir Flask uygulaması başlatır ve ‘/api/hello’ yoluna bir GET isteği yapıldığında bir JSON yanıtı döndürür. Flask uygulamanızı çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
if __name__ == "__main__":
app.run(debug=True)
Uygulamanızı çalıştırdığınızda, tarayıcınızda veya Postman gibi bir API istemcisinde http://127.0.0.1:5000/api/hello adresine giderek yanıtı görebilirsiniz. Bu temel yapı, API’nizin temelini oluşturur. İlerleyen aşamalarda daha karmaşık veri işleme ve kullanıcı yönetimini eklemek için farklı yollar izleyebilirsiniz.
Veri Yönetimi ve Veritabanı Entegrasyonu
Bir API’nin önemli bir parçası, veri yönetimidir. Flask ile birlikte SQLAlchemy gibi bir ORM (Object Relational Mapping) aracı kullanarak veritabanı işlemlerini daha kolay hale getirebiliriz. SQLAlchemy, veritabanı ile Python nesneleri arasında köprü kurar ve veritabanı işlemlerini daha yönetilebilir hale getirir. Öncelikle, SQLAlchemy ve bir veritabanı sürücüsü kurmalısınız:
pip install Flask-SQLAlchemy
Veritabanını yapılandırmak için Flask uygulamanıza aşağıdaki kodu ekleyin:
from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
Artık veritabanınızı kurduğunuz için bir model oluşturmanız gerekecek. Örneğin, basit bir “Kullanıcı” modeli oluşturarak veritabanını nasıl kullanacağınızı gösterebiliriz:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return '' % self.username
Modelinizi oluşturduktan sonra, veritabanında tablo oluşturmak için aşağıdaki komutları kullanmanız gerekiyor:
db.create_all()
Şimdi kullanıcı eklemek için bir API uç noktası oluşturalım. Aşağıdaki kod, yeni bir kullanıcıyı veritabanına eklemek için bir POST isteği alır:
@app.route('/api/user', methods=['POST'])
def add_user():
username = request.json['username']
email = request.json['email']
new_user = User(username=username, email=email)
db.session.add(new_user)
db.session.commit()
return jsonify({'message': 'User created!'}), 201
Bu API, istemciden gelen JSON verilerini alır ve yeni bir kullanıcı oluşturur. Veritabanınıza veri eklerken dikkat etmeniz gereken noktalar şunlardır:
- Geçerlilik kontrolü yapın: Kullanıcı verilerini almadan önce doğrulama yapmak, uygulamanızın güvenliği için önemlidir.
- Hata yönetimi: Veri ekleme işlemi başarısız olursa uygun hata mesajları döndürmek, kullanıcı deneyimini artırır.
- Veri formatı: Verilerin hangi formatta (örneğin JSON) geleceğini belirlerseniz, uygulamanız daha düzenli çalışır.
Sonuç olarak, Flask ile veri yönetimi yapmak, uygulamanızı daha dinamik ve kullanıcı dostu hale getirir. Veritabanı entegrasyonu ile kullanıcı ve veri yönetimini kolayca gerçekleştirebilir ve sisteminizin performansını artırabilirsiniz.
Hata Yönetimi ve Test Süreçleri
Flask uygulamalarında hata yönetimi, geliştiricinin karşılaşabileceği en önemli konulardan biridir. Uygulamanızın sağlıklı bir şekilde çalışmasını sağlamak için olası hataları önceden tahmin etmek ve bunları etkili bir şekilde yönetmek gerekmektedir. Flask, hata yönetimi konusunda size çeşitli imkanlar sunar. Örneğin, hata durumlarını yönetmek için özel hata sayfaları oluşturabilir ve kullanıcı dostu hata mesajları sağlayabilirsiniz.
Hata yönetimi için Flask uygulamanızda, Flask’ın hata yakalama mekanizmasını kullanmak oldukça faydalıdır. Flask uygulamanızda, farklı HTTP hatalarını yakalamak için decorator’ları kullanarak özel hata sayfaları oluşturabilirsiniz. Örneğin, bir 404 hatası oluştuğunda kullanıcıya özel bir sayfa göstermek için aşağıdaki gibi bir kod yazabilirsiniz:
- 404 Hatası: Bu hata sayfası, kullanıcının erişmeye çalıştığı sayfanın bulunamadığını belirtir.
- 500 Hatası: Sunucu tarafında bir hata meydana geldiğinde kullanıcıya gösterilecek bir hata sayfasıdır.
Ayrıca, uygulamanızda meydana gelen hataları günlük kaydına almak, sorunların çözümünde önemli bir adımdır. Flask uygulamanızda hata günlüğü oluşturmak için Python’un yerleşik logging modülünü kullanabilirsiniz. Aşağıdaki örnek, hata mesajlarınızı bir dosyaya kaydetmenin basit bir yolunu göstermektedir:
Test süreçleri de bir o kadar önemlidir. Uygulamanızın düzgün çalıştığından emin olmak için birim testleri ve entegrasyon testleri yazmalısınız. Flask, bu testleri yazmanızı kolaylaştıran çeşitli araçlar sunar. Unittest ve pytest gibi kütüphaneler, test yazımını kolaylaştıran ve testlerinizi yönetmenize yardımcı olan araçlardır. Örneğin, aşağıdaki gibi basit bir birim testi ile API uç noktanızı test edebilirsiniz:
Bir test yazarken, her bir uç noktanız için beklenen sonuçları belirtmek önemlidir. Örneğin, bir GET isteği ile belirli bir kaynağın döndürülmesini bekliyorsanız, testinizin bu çıktıyı doğrulaması gerekir. İşte basit bir örnek:
- API’nin belirli bir kaynağı döndürdüğünü doğrulamak.
- Yanıtın beklenen HTTP durum kodunu içerdiğini kontrol etmek.
Sıkça Sorulan Sorular
Python Flask nedir?
Flask, Python ile yazılmış bir mikro web çatısıdır. Hızlı ve kolay bir şekilde web uygulamaları ve API’ler geliştirmeye olanak tanır.
Flask ile nasıl bir API oluşturabilirim?
Flask ile bir API oluşturmak için öncelikle Flask kütüphanesini kurup, gerekli rota ve yöntemleri tanımlamanız gerekir. Ardından verileri JSON formatında döndürerek API’yi oluşturabilirsiniz.
Flask’ın avantajları nelerdir?
Flask, hafif yapısı, genişletilebilirliği ve esnekliği ile bilinir. Ayrıca, geliştiricilerin ihtiyaçlarına göre özelleştirilebilir.
Flask ile RESTful API nasıl oluşturulur?
RESTful API oluşturmak için Flask’ın route decorator’larını kullanarak HTTP yöntemlerine (GET, POST, PUT, DELETE) göre yollar tanımlamanız yeterlidir.
Flask uygulamamı nasıl başlatabilirim?
Flask uygulamanızı başlatmak için uygulama dosyanızı çalıştırdıktan sonra terminalde `flask run` komutunu kullanabilirsiniz.
Flask ile veri tabanı bağlantısı nasıl yapılır?
Flask ile veri tabanı bağlantısı yapmak için SQLAlchemy gibi bir ORM kullanabilirsiniz. Bağlantı ayarlarını yapılandırarak veri tabanınızla etkileşimde bulunabilirsiniz.
Flask ile kimlik doğrulama nasıl yapılır?
Flask-Login gibi kütüphaneleri kullanarak kullanıcı kimlik doğrulama süreçlerini kolayca yönetebilirsiniz. Bu kütüphaneler oturum yönetimi sağlar.
Flask uygulamamı nasıl test edebilirim?
Flask, birim testleri ve entegrasyon testleri için yerleşik destek sunar. `unittest` veya `pytest` gibi test çerçevelerini kullanarak uygulamanızı test edebilirsiniz.
Flask ile JSON verileri nasıl işlenir?
Flask, gelen JSON verilerini `request.get_json()` ile alır ve bu verileri Python nesnelerine dönüştürür. Ayrıca, yanıtları JSON formatında döndürmek için `jsonify` fonksiyonunu kullanabilirsiniz.
Flask ile CORS nasıl yönetilir?
CORS (Cross-Origin Resource Sharing) ayarlarını yönetmek için Flask-CORS kütüphanesini kullanarak gerekli izinleri tanımlayabilirsiniz.
Flask uygulamamı nasıl dağıtabilirim?
Flask uygulamanızı, Heroku, AWS veya DigitalOcean gibi bulut platformlarında dağıtabilirsiniz. Uygulamanızın yapılandırmalarını bu platformlara göre ayarlamanız yeterlidir.
Flask ile dosya yükleme nasıl yapılır?
Flask, `request.files` aracılığıyla dosya yüklemeyi destekler. Yüklenen dosyaların kaydedilmesi için gerekli işlemleri yapabilirsiniz.
Flask uygulamamda hata ayıklama nasıl yapılır?
Flask, hata ayıklama modunu etkinleştirerek uygulamanızdaki hataları ayrıntılı olarak görüntülemenizi sağlar. `app.run(debug=True)` ile bu modu açabilirsiniz.
Flask ile form verileri nasıl işlenir?
Flask, `request.form` ile gelen form verilerini alır. Bu verileri işlemek için uygun işlemleri yapabilirsiniz.
Flask’ın performansını nasıl artırabilirim?
Flask’ın performansını artırmak için caching (önbellekleme) kullanabilir, uygulamanızı bir WSGI sunucusuyla çalıştırabilir ve gereksiz yüklerden kaçınabilirsiniz.
Flask ile şablon kullanımı nasıl yapılır?
Flask, Jinja2 şablon motorunu kullanarak HTML şablonları oluşturmanıza olanak tanır. `render_template` fonksiyonu ile şablonları dinamik olarak oluşturabilirsiniz.
Flask uygulamamda nasıl oturum yönetimi yapabilirim?
Flask-Session kütüphanesini kullanarak oturum yönetimini kolayca gerçekleştirebilirsiniz. Bu kütüphane, oturum verilerinizi sunucu veya veri tabanında saklayabilir.
Flask ile hata sayfaları nasıl oluşturulur?
Flask, özel hata sayfaları oluşturmanıza olanak tanır. `@app.errorhandler` dekoratörünü kullanarak belirli hata kodları için özel yanıtlar döndürebilirsiniz.
Flask uygulamamda nasıl logging yapabilirim?
Flask, yerleşik logging modülünü kullanarak uygulamanızdaki olayları kaydetmenizi sağlar. `logging` kütüphanesini yapılandırarak log seviyelerini belirleyebilirsiniz.




