Files
fastapi/docs/tr/docs/tutorial/request-form-models.md
2026-01-31 19:22:34 +00:00

2.5 KiB
Raw Blame History

Form Model'leri

FastAPI'de form field'larını tanımlamak için Pydantic model'lerini kullanabilirsiniz.

/// info | Bilgi

Form'ları kullanmak için önce python-multipart'ı yükleyin.

Bir virtual environment{.internal-link target=_blank} oluşturduğunuzdan, onu etkinleştirdiğinizden ve ardından paketi kurduğunuzdan emin olun. Örneğin:

$ pip install python-multipart

///

/// note | Not

Bu özellik FastAPI 0.113.0 sürümünden itibaren desteklenmektedir. 🤓

///

Form'lar için Pydantic Model'leri

Sadece, form field olarak almak istediğiniz alanlarla bir Pydantic model tanımlayın ve ardından parametreyi Form olarak bildirin:

{* ../../docs_src/request_form_models/tutorial001_an_py39.py hl[9:11,15] *}

FastAPI, request içindeki form data'dan her bir field için veriyi çıkarır ve size tanımladığınız Pydantic model'ini verir.

Dokümanları Kontrol Edin

Bunu /docs altındaki doküman arayüzünde doğrulayabilirsiniz:

Fazladan Form Field'larını Yasaklayın

Bazı özel kullanım senaryolarında (muhtemelen çok yaygın değildir), form field'larını yalnızca Pydantic model'inde tanımlananlarla sınırlamak isteyebilirsiniz. Ve fazladan gelen field'ları yasaklayabilirsiniz.

/// note | Not

Bu özellik FastAPI 0.114.0 sürümünden itibaren desteklenmektedir. 🤓

///

Herhangi bir extra field'ı forbid etmek için Pydantic'in model konfigürasyonunu kullanabilirsiniz:

{* ../../docs_src/request_form_models/tutorial002_an_py39.py hl[12] *}

Bir client fazladan veri göndermeye çalışırsa, bir error response alır.

Örneğin, client şu form field'larını göndermeye çalışırsa:

  • username: Rick
  • password: Portal Gun
  • extra: Mr. Poopybutthole

extra field'ının izinli olmadığını söyleyen bir error response alır:

{
    "detail": [
        {
            "type": "extra_forbidden",
            "loc": ["body", "extra"],
            "msg": "Extra inputs are not permitted",
            "input": "Mr. Poopybutthole"
        }
    ]
}

Özet

FastAPI'de form field'larını tanımlamak için Pydantic model'lerini kullanabilirsiniz. 😎