Path parametresi
- Python kursu
- İleri seviye
- Ders 52/83
- 5 dk
/items/{id} ile yol parametresini öğrenirsin.
Path parametresi
Yol içinde {isim} biçimindeki yer tutucu, bir path parametresi olur. İşlev parametresi aynı isimle eşleşir; FastAPI değeri URL'den çıkarıp geçirir.
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}Tür int verilirse FastAPI otomatik dönüştürür. Uygun değilse 422 yanıtı döner. Bu, kaynak kimliği alan yollar için idealdir.
tür dönüştürme
Path parametresine int, str, float gibi türler verirsin. FastAPI URL'den gelen dizeyi bu türe çevirir; çevrilemezse 422 yanıtı döner.
@app.get("/items/{item_id}")
def read_item(item_id: int):
# item_id burada bir int
return {"item_id": item_id, "tipi": type(item_id).__name__}Tür olmadan parametre str kabul edilir. Tür vermek, doğrulamayı ve dokümantasyonu güçlendirir.
Uygulama Path parametreli GET yolu
from fastapi import FastAPI ve from fastapi.testclient import TestClient ile başla. app = FastAPI() tanımla. @app.get("/items/{item_id}") dekoratörüyle def read_item(item_id: int): tanımla ve return {"item_id": item_id} yapsın. client = TestClient(app) ile istemci oluştur. print(client.get("/items/5").text) ile yanıt gövdesini yazdır.
Başlangıç kodu
# fastapi'den FastAPI'yi içe aktar
# TestClient'ı içe aktar
# app'i tanımla
# '/items/{item_id}' yolu için bir get işlevi ekle (item_id: int)
# TestClient ile istemci oluştur, '/items/5' yolunu sorgula ve gövdeyi yazdırÖrnek çözüm
from fastapi import FastAPI
from fastapi.testclient import TestClient
app = FastAPI()
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}
client = TestClient(app)
print(client.get("/items/5").text)Beklenen çıktı
{"item_id":5}
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 @app.get("/items/{item_id}") yolunda item_id nasıl alınır?
- İşlev parametresiyle Doğru cevap
- Global değişkenle
- Sorgu dizesinden
- Dosyadan okuyarak
Açıklama: item_id, aynı isimli işlev parametresiyle alınır.
2 path parametre yolunu tamamla
@app.get("/items/____")
def read_item(item_id: int):
@app.get("/items/{item_id}")
def read_item(item_id: int):
Açıklama: {item_id} yol parametresi yer tutucusudur.
3 Path parametresi kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
{item_id} |
Yer tutucudur |
item_id: int |
Tür dönüşümüdür |
422 |
Doğrulama hatasıdır |
/items/{id} |
Yol şablonudur |