Flask ile Modern Web Uygulaması Geliştirme Rehberi
Yazar: Burak Balkı | Kategori: Frontend Development | Okuma Süresi: 8 dk
Bu kapsamlı rehberde, Python Flask mikro-framework'ü ile modern web uygulamaları geliştirmenin temellerini, veritabanı entegrasyonunu, API tasarımını ve en i...
## Flask Nedir ve Neden Kullanılmalıdır?
**Flask**, Python programlama dili üzerine inşa edilmiş, minimalist ve esnek bir mikro web çatısıdır (micro-framework). Diğer ağır çatılara kıyasla, Flask geliştiricilere uygulama yapısı üzerinde tam kontrol sunar. **WSGI** (Web Server Gateway Interface) araç kiti olan Werkzeug ve şablon motoru olan Jinja2 üzerine kurulmuştur.
Frontend geliştiriciler için Flask, özellikle modern JavaScript frameworkleri (React, Vue, Angular) ile konuşacak hızlı API'lar oluşturmak veya basit ama güçlü sunucu tarafı render edilen (SSR) uygulamalar geliştirmek için idealdir. Hafif yapısı sayesinde, gereksiz kütüphanelerle uğraşmadan sadece ihtiyacınız olan bileşenleri projenize dahil edebilirsiniz.
## Flask Kurulumu ve Geliştirme Ortamının Hazırlanması
Başarılı bir Flask projesinin temeli, izole edilmiş bir geliştirme ortamıdır. Bu, bağımlılık çakışmalarını önler ve projenin taşınabilirliğini artırır.
### Sanal Ortam Oluşturma
İlk adım olarak projeniz için bir dizin oluşturun ve sanal ortamı (virtual environment) aktif edin:
```bash
mkdir flask-projem && cd flask-projem
python3 -m venv venv
source venv/bin/activate # Windows için: venv\Scripts\activate
```
### Flask Yükleme
Sanal ortam aktifken Flask paketini yükleyin:
```bash
pip install Flask
```
## İlk Flask Uygulamasını Oluşturma: Hello World
En temel seviyede bir Flask uygulaması, sadece birkaç satır koddan oluşur. `app.py` adında bir dosya oluşturun ve aşağıdaki kodu ekleyin:
```python
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "')
def show_user_profile(username):
# Kullanıcı adını URL'den alır
return f'Kullanıcı: {username}'
@app.route('/post/')
def show_post(post_id):
# Sadece tam sayı (int) kabul eder
return f'İçerik ID: {post_id}'
```
| Parametre Tipi | Açıklama |
| :--- | :--- |
| `string` | Varsayılan tip, metin kabul eder |
| `int` | Pozitif tam sayıları kabul eder |
| `float` | Ondalıklı sayıları kabul eder |
| `path` | Slash (/) içeren metinleri kabul eder |
## Jinja2 Şablon Motoru ile Dinamik İçerik Yönetimi
Frontend geliştiricilerin en çok kullanacağı alanlardan biri şablon motorudur. Flask, HTML dosyalarını dinamik veriyle birleştirmek için **Jinja2** kullanır.
`templates/index.html` dosyasını oluşturun:
```html
{{ title }}
Flask Dünyasına Hoş Geldiniz!
" if __name__ == '__main__': app.run(debug=True) ``` > **Not:** `debug=True` parametresi, geliştirme aşamasında kodda yapılan değişikliklerin otomatik olarak algılanmasını ve tarayıcıda hata ayıklama konsolunun görünmesini sağlar. Prodüksiyon ortamında asla kullanılmamalıdır. ## Flask Yönlendirme (Routing) ve Dinamik URL Yapıları Flask, URL'leri Python fonksiyonlarına bağlamak için dekoratörleri kullanır. Dinamik URL yapıları sayesinde kullanıcıdan gelen verileri yakalayabilirsiniz. ```python @app.route('/user/Merhaba, {{ name }}!
-
{% for item in items %}
- {{ item }} {% endfor %}