Query parametresi
- Python kursu
- İleri seviye
- Ders 53/83
- 5 dk
?q=value ile sorgu parametresini öğrenirsin.
Query parametresi
İşlev parametresi yol içinde değilse, FastAPI onu bir query parametresi olarak kabul eder. URL'in ?anahtar=değer kısmından alınır.
@app.get("/ara")
def ara(q: str = None):
return {"q": q}
# /ara?q=kalem -> {"q": "kalem"}Varsayılan değer verirsen parametre isteğe bağlı olur; vermezsen zorunludur. Tür de verebilirsin (int, str).
zorunlu ve isteğe bağlı
Query parametresine varsayılan değer verirsen (q: str = None) parametre isteğe bağlı olur. Vermezsen (q: str) zorunlu olur; URL'de yoksa 422 döner.
# isteğe bağlı
@app.get("/ara")
def ara(q: str = None): ...
# zorunlu
@app.get("/ara")
def ara(q: str): ...Varsayılan değer boş dize ("") veya başka bir sabit de olabilir. Bu, arama gibi boş bırakılabilen alanlar için yararlıdır.
Uygulama Query parametreli GET yolu
from fastapi import FastAPI ve from fastapi.testclient import TestClient ile başla. app = FastAPI() tanımla. @app.get("/ara") dekoratörüyle def ara(q: str = None): tanımla ve return {"q": q} yapsın. client = TestClient(app) ile istemci oluştur. print(client.get("/ara?q=kalem").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
# '/ara' yolu için bir get işlevi ekle (q: str = None parametresi ile)
# TestClient ile istemci oluştur, '/ara?q=kalem' yolunu sorgula ve gövdeyi yazdırÖrnek çözüm
from fastapi import FastAPI
from fastapi.testclient import TestClient
app = FastAPI()
@app.get("/ara")
def ara(q: str = None):
return {"q": q}
client = TestClient(app)
print(client.get("/ara?q=kalem").text)Beklenen çıktı
{"q":"kalem"}
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 query parametreli işlevi tamamla
@app.get("/ara")
def ara(____: str = None):
return {"q": q}
@app.get("/ara")
def ara(q: str = None):
return {"q": q}
Açıklama: str = None parametresi query parametresi olur.
2 Hangi URL /ara yoluna q=kalem query parametresi gönderir?
- /ara&q=kalem
- /ara/q/kalem
- /ara#q=kalem
- /ara?q=kalem Doğru cevap
Açıklama: ? ile başlayan kısım query parametrelerini taşır.
3 Query parametresi kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
q: str = None |
İsteğe bağlıdır |
q: str |
Zorunludur |
?q=kalem |
URL sorgusudur |
def ara(q) |
İşlev tanımıdır |