/
urusai
/
code_sample
Обзор
Документация
Войти
/
urusai
/
code_sample
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/settings/db/settings.py
26 строк
915 B
nick
init
30 сен 2024, 16:12
30 сен 2024, 16:12
c68451c
Код
Авторство
О чём код?
from typing import Literal from pydantic import Field, PostgresDsn, BaseSettings class SettingsPostgres(BaseSettings): DB_USERNAME: str = Field(env="POSTGRES_USER", default="ff") DB_PASSWORD: str = Field(env="POSTGRES_PASSWORD", default="ff") DB_PORT: str = Field(env="POSTGRES_PORT", default=5432) DB_HOST: str = Field(env="POSTGRES_HOST", default="127.0.0.1") DB_BASENAME: str = Field(env="POSTGRES_DB", default="test_db") def dsn(self, mode: Literal["sync", "async"]): scheme = "postgresql+asyncpg" if mode == "async" else "postgresql+psycopg" return PostgresDsn.build( scheme=scheme, user=self.DB_USERNAME, password=self.DB_PASSWORD, host=self.DB_HOST, path=f"/{self.DB_BASENAME}", port=self.DB_PORT, ) class Config: env_file = "../.env" env_file_encoding = "utf-8"