FastAPI python

FastAPIで.envファイルを使用して設定を読み込む方法

スポンサーリンク

概要

最近学び出したFastAPIで、.envファイルを使った設定の読み込む方法のメモ

スポンサーリンク

説明

FastAPIにおける設定

FastAPIではpydanticが提供する型システムやバリデーション機能が魅力の一つ。BaseModelを継承したモデルを使用することでお手軽にこれらの機能が使える。

この機能をアプリケーションの設定として使用できる、pydantic-settingsといった拡張機能が存在する。(pipなどで追加でインストールする必要あり。)

 

BaseSettingクラス

BaseSettingsクラスを継承することで、BaseModelと同様な機能を使用することができる。

 

このままだと通常のBaseModelと大きい違いはないが、下記のようなmodel_configを定義することで、envファイルから設定を読み込むことができる。

複数指定することで、読み込むファイルの優先度が指定できるので、開発環境や本番環境に合わせて設定をスイッチすることも可能。

pydantic1ではinternal classのConfigを使用した実装方法になっているが、2では下記が推奨方法となるようである。(Config classの方を使うと確か警告が出た気がする。)

定義されたフィールド名と一致する.envファイルを用意すると、値が上書きされる。

 

読み込まれた設定のバリデーションはBaseModelと同様に行うことができる。

 

なお、使う際には@iru_cacheでデコレートしたメソッドから設定を取り出すことで、キャッシュされて、オブジェクト生成ごとに.envファイルを読み込まなくなる。

 

参照情報(FastAPIドキュメント)

https://fastapi.tiangolo.com/advanced/settings/

-FastAPI, python

© 2024 nobu blog Powered by AFFINGER5