Movatterモバイル変換


[0]ホーム

URL:


Ana içeriğe geç
Join theFastAPI Cloud waiting list 🚀
Follow@fastapi onX (Twitter) to stay updated
FollowFastAPI onLinkedIn to stay updated
Subscribe to theFastAPI and friends newsletter 🎉
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor

Form Model'leri

🌐 Yapay Zekâ ve İnsanlar Tarafından Çeviri

Bu çeviri, insanlar tarafından yönlendirilen bir yapay zekâ ile oluşturuldu. 🤝

Orijinal anlamın yanlış anlaşılması ya da kulağa doğal gelmeme gibi hatalar içerebilir. 🤖

Yapay zekâ LLM'ini daha iyi yönlendirmemize yardımcı olarak bu çeviriyi iyileştirebilirsiniz.

İngilizce sürüm

FastAPI'deform field'larını tanımlamak içinPydantic model'lerini kullanabilirsiniz.

Bilgi

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

Birvirtual environment oluşturduğunuzdan, onu etkinleştirdiğinizden ve ardından paketi kurduğunuzdan emin olun. Örneğin:

$pipinstallpython-multipart

Not

Bu özellik FastAPI0.113.0 sürümünden itibaren desteklenmektedir. 🤓

Form'lar için Pydantic Model'leri

Sadece,form field olarak almak istediğiniz alanlarla birPydantic model tanımlayın ve ardından parametreyiForm olarak bildirin:

fromtypingimportAnnotatedfromfastapiimportFastAPI,FormfrompydanticimportBaseModelapp=FastAPI()classFormData(BaseModel):username:strpassword:str@app.post("/login/")asyncdeflogin(data:Annotated[FormData,Form()]):returndata
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromfastapiimportFastAPI,FormfrompydanticimportBaseModelapp=FastAPI()classFormData(BaseModel):username:strpassword:str@app.post("/login/")asyncdeflogin(data:FormData=Form()):returndata

FastAPI, request içindekiform data'danher 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ımlananlarlasınırlamak isteyebilirsiniz. Vefazladan gelen field'larıyasaklayabilirsiniz.

Not

Bu özellik FastAPI0.114.0 sürümünden itibaren desteklenmektedir. 🤓

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

fromtypingimportAnnotatedfromfastapiimportFastAPI,FormfrompydanticimportBaseModelapp=FastAPI()classFormData(BaseModel):username:strpassword:strmodel_config={"extra":"forbid"}@app.post("/login/")asyncdeflogin(data:Annotated[FormData,Form()]):returndata
🤓 Other versions and variants

Tip

Prefer to use theAnnotated version if possible.

fromfastapiimportFastAPI,FormfrompydanticimportBaseModelapp=FastAPI()classFormData(BaseModel):username:strpassword:strmodel_config={"extra":"forbid"}@app.post("/login/")asyncdeflogin(data:FormData=Form()):returndata

Bir client fazladan veri göndermeye çalışırsa, birerror 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. 😎


[8]ページ先頭

©2009-2026 Movatter.jp