# 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. 😎