Flask Nedir?
Flask, Python programlama dili ile web uygulamaları geliştirmek için kullanılan hafif bir web framework'üdür. Kullanımı oldukça basit ve esnektir, bu yüzden geliştiriciler arasında oldukça popülerdir. Flask, Django gibi büyük framework'lerin aksine, daha minimal ve küçük yapıda olduğu için hızlıca projeler geliştirebilirsiniz.
Bugün size Flask ile bir REST API yapmayı göstereceğim. Bir REST API, bir web servisi ile veri alışverişi yapmanızı sağlar. Örneğin, veritabanındaki verileri almak, eklemek, güncellemek veya silmek için bir API kullanabilirsiniz.
Adım 1: Flask'ı Kurmak
Flask ile bir API yapabilmek için öncelikle Flask’ı kurmamız gerekiyor. Flask'ı kurmak için terminal veya komut istemcisini açarak aşağıdaki komutu yazabilirsiniz:
pip install FlaskBu komut, Flask'ı Python ortamınıza yükleyecektir. Yükleme işlemi tamamlandıktan sonra, Flask ile API geliştirmeye başlayabiliriz.
Adım 2: İlk Flask Uygulamanızı Yazın
Şimdi, ilk basit Flask uygulamamızı yazmaya başlayalım. Bu uygulama bir “Hello World” API'si olacak.
İlk olarak, bir Python dosyası oluşturun (örneğin: `app.py`). Ardından aşağıdaki kodu yazın:
from flask import Flask
app = Flask(__name__)
@app.route('/hello', methods=['GET'])
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
Bu basit kod, Flask'ı kullanarak bir web sunucusu başlatacak ve `/hello` adresine yapılan GET isteklerine “Hello, World!” yanıtını verecek.
Adım 3: REST API için Endpoints Ekleyin
Artık “Hello, World!” mesajını alabiliyoruz. Şimdi daha faydalı hale getirelim! REST API’mize birkaç endpoint ekleyelim.
Örneğin, bir kullanıcı eklemek için bir POST isteği gönderebiliriz. Kullanıcı bilgilerini JSON formatında alacağız ve kullanıcıyı veritabanına kaydedeceğiz.
Aşağıdaki gibi bir endpoint ekleyebiliriz:
from flask import Flask, request, jsonify
app = Flask(__name__)
# Kullanıcı bilgilerini tutacak bir liste
users = []
@app.route('/users', methods=['POST'])
def add_user():
user_data = request.get_json()
if 'name' not in user_data or 'age' not in user_data:
return jsonify({'error': 'Invalid data! Name and age are required.'}), 400
users.append(user_data)
return jsonify({'message': 'User added successfully!'}), 201
@app.route('/users', methods=['GET'])
def get_users():
return jsonify(users)
if __name__ == '__main__':
app.run(debug=True)
Bu kodda iki endpoint bulunuyor:
1. `/users` ile POST isteği yaparak yeni bir kullanıcı ekleyebilirsiniz.
2. `/users` ile GET isteği yaparak tüm kullanıcıları listeleyebilirsiniz.
Adım 4: Veritabanı Entegrasyonu
Bu noktada, verileri bellekte tutuyoruz. Ancak, gerçek bir uygulamada veritabanı kullanmak daha uygun olacaktır. Flask ile SQLite veya başka bir veritabanı kullanmak oldukça kolaydır.
Bir SQLite veritabanı ile örnek yapalım:
import sqlite3
def init_db():
conn = sqlite3.connect('users.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
conn.commit()
conn.close()
def add_user_to_db(name, age):
conn = sqlite3.connect('users.db')
c = conn.cursor()
c.execute('INSERT INTO users (name, age) VALUES (?, ?)', (name, age))
conn.commit()
conn.close()
@app.route('/users', methods=['POST'])
def add_user():
user_data = request.get_json()
if 'name' not in user_data or 'age' not in user_data:
return jsonify({'error': 'Invalid data! Name and age are required.'}), 400
add_user_to_db(user_data['name'], user_data['age'])
return jsonify({'message': 'User added successfully!'}), 201
Bu şekilde kullanıcıları veritabanına kaydedebiliriz.
Adım 5: API'yi Test Etmek
Son olarak, API’mizi test edelim. Bunun için Postman gibi araçlar kullanabilirsiniz. API'nizin çalışıp çalışmadığını kontrol etmek için aşağıdaki adımları takip edebilirsiniz:
1. GET isteği ile `/users` endpoint'ine gidin ve kullanıcı listesini görün.
2. POST isteği ile `/users` endpoint'ine kullanıcı ekleyin.
Eğer her şey doğru çalışıyorsa, başarıyla bir REST API oluşturmuş oldunuz!
Sonuç
Flask ile bir REST API yapmak gerçekten çok eğlenceli ve kolay. Hem küçük hem de güçlü projeler için Flask’ı kullanabilirsiniz. Kendi projelerinizde bu temel adımları geliştirebilir ve daha fazla özellik ekleyebilirsiniz. Flask, hızlı geliştirme için mükemmel bir araçtır.
Umarım bu yazı, Flask REST API yapımına dair gerekli tüm bilgileri öğrenmenizi sağlamıştır. Şimdi sıradaki projeye başlayabilirsiniz!