Closed5
Pydanticで面白そうな機能を見つけたので書く
こんなのを見つけた
自分のアプリの設定をPydanticのBaseModel
のように書ける。
ちなみに.envファイルからも読み込めるっぽい。
メモがてら使い方を書いておく
インストール
pydantic
本体のインストールも忘れずに
pip install -U pydantic-settings
or
poetry add -U pydantic-settings
主な使い方
pydantic
のBaseModel
と使用感は全く同じ
class Settings(BaseSettings):
api_key = Field(..., validation_alias='MY_API_KEY')
validation_alias
を使用すると、api_key
の代わりに指定した値(ここではMY_API_KEY
)が読み込まれる
Configの書き方
- クラスの中に
Config
クラスを書く方法
from pydantic_settings import BaseSettings
from pydantic import Field
class Settings(BaseSettings):
(...省略)
class Config:
extra = "ignore" # pydanticのConfigも行けそう?
env_file = ".env"
env_file_encoding= "utf-8" # 日本語環境はこれを書いたほうが良さげ
env_prefix = "MY_" # envファイルから読み込むときのプレフィックス
case_sensitive = True # 大文字と小文字を区別する。デフォルトはFalse
-
model_config = SettingConfigDict()
で書く
from pydantic_settings import BaseSettings, SettingsConfigDict
from pydantic import Field
class Settings(BaseSettings):
(...省略)
model_config = SettingsConfigDict(env_file=".env") # さっきと同じように書ける
設定ソースはjson
,toml
,yaml
が行けそう
バリデーションもできるし最強では????
dockerの環境変数の読み取りでも使えるしまじで良さげなので
いいねついたら記事で書くかもです
このスクラップは2024/04/05にクローズされました