CodeBlanks Logo Icon CodeBlanks

Query parametresi

?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

main.py
# 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

main.py
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

Soru
@app.get("/ara")
def ara(____: str = None):
    return {"q": q}
Cevap
@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

İleri seviye bölümündeki tüm dersler