fastapi練習
Flaskのシンプルさと,Djangoにはないモダンな機能を兼ね備え,そこに圧倒的なパフォーマンスを加えたフレームワーク.
強力なライブラリ2つ
- Starlette:非同期処理を担う超高速な基盤
- Pydantic:Pythonの方ヒントを利用して,データの検証や設定管理を強力に行うライブラリ
| 特徴 | FastAPI | Django | Flask |
|---|---|---|---|
| タイプ | マイクロフレームワーク | フルスタックフレームワーク | マイクロフレームワーク |
| 非同期サポート | ◎ (ネイティブ) | △ (部分的) | △ (部分的) |
| パフォーマンス | ◎ (非常に高速) | △ (比較的遅い) | 〇 (FastAPIよりは遅い) |
| データ検証 | ◎ (Pydanticで強力) | 〇 (フォーム機能) | × (別途ライブラリ要) |
| APIドキュメント | ◎ (自動生成) | × (別途ライブラリ要) | × (別途ライブラリ要) |
| 主な用途 | Web API開発,機械学習モデルの提供 | Webサイト全般,管理画面を持つ業務システム | 小規模アプリ,プロトタイプ |
- def(同期)とasync defエイシンク(非同期)
detail: バリデーションエラーの詳細情報がリスト形式で格納されています。
各エラーオブジェクトには、以下の情報が含まれています。
loc: エラーが発生した場所(body.name, body.priceなど)
msg: エラーメッセージ(Input should be a valid string, value is not a valid floatなど)
type: エラータイプ(type_error.str, value_error.floatなど)