# Routes ve View Fonksiyonları

Web tarayıcıları gibi istemciler web sunucusuna istek gönderir ve bu sunucuda gelen isteği uygulama nesnesine döndürür (initialization kısmında da bahsettiğimiz app nesnesi). Flask uygulama nesnesinin istenen her URL için hangi kodu çalıştırması gerektiğini bilmesi gerekir, böylece URL'lerin Python fonksiyonlarıyla eşlenmesi sağlanır. \
Bir URL ile onu çalıştıran fonksiyon arasındaki ilişki **route** (rota) olarak adlandırılır. Bir Flask uygulamasında route tanımlamanın yolu, uygulama nesnesi tarafından oluşturulan `app.route` dekoratörüdür. Bu `app.route` dekoratörü kullanılarak bir route bildirimi şu şekilde yapılmaktadır.

```python
@app.route('/')
def index():
    return '<h1>Hello World!</h1>'
```

> Dekoratörler Python'un standart bir özelliğidir. Dekoratörlerin genel kullanımı, belirli olaylar meydana geldiğinde çağırılacak fonksiyonları kaydetmektir.

Önceki örnek `index()` fonksiyonunu uygulamanın root URL'nin çalıştırıcısı olarak kaydeder. View fonksiyonlarını kaydetmek için `app.route` tercih edilen yöntem olsada, Flask ayrıca uygulama routelarını `app.add_url_rule()` yöntemiyle ayarlamak için daha geleneksel bir yolda sunar. En temel haliyle 3 parametre alır: URL, bitiş noktası adı ve view fonksiyonu. Takip eden örnek, bir `index ()` fonksiyonunu kaydetmek için daha önce gösterilene  eşdeğer bir şekilde`app.add_url_rule ()` yöntemini kullanır.

```python
def index():
    return '<h1>Hello World!</h1>'

app.add_url_rule('/', 'index', index)
```

Uygulama URL'lerini çalıştıran `index()` gibi fonksiyonlar **view fonksiyonları** olarak adlandırılır. Uygulama `www.example.com` domain adıyla ilişkili bir sunucuda deploy edilseydi, tarayıcıda `http://www.example.com/` URL'ine gidildiğinde sunucu üzerinde `index()` çalıştırılmak için tetiklenmiş olurdu. Bu view fonksiyonunun dönüş değeri ise istemcinin aldığı _response_ olmaktadır (yanıt).&#x20;
