# Form Model'leri { #form-models } FastAPI'de **form field**'larını tanımlamak için **Pydantic model**'lerini kullanabilirsiniz. /// info | Bilgi Form'ları kullanmak için önce [`python-multipart`](https://github.com/Kludex/python-multipart)'ı yükleyin. Bir [virtual environment](../virtual-environments.md) oluşturduğunuzdan, onu etkinleştirdiğinizden ve ardından paketi kurduğunuzdan emin olun. Örneğin: ```console $ 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 { #pydantic-models-for-forms } 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_py310.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 { #check-the-docs } Bunu `/docs` altındaki doküman arayüzünde doğrulayabilirsiniz:
## Fazladan Form Field'larını Yasaklayın { #forbid-extra-form-fields } 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_py310.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: ```json { "detail": [ { "type": "extra_forbidden", "loc": ["body", "extra"], "msg": "Extra inputs are not permitted", "input": "Mr. Poopybutthole" } ] } ``` ## Özet { #summary } FastAPI'de form field'larını tanımlamak için Pydantic model'lerini kullanabilirsiniz. 😎