refactor: улучшенная структура и настройки приложения
- Добавлен атрибут `secret_key` для хранения секретного ключа. - Обновлён класс `Settings` с использованием `SecretStr`. - Изменены параметры конструктора в классе `DBDependency`, теперь они инициализируются через настройки.
This commit is contained in:
parent
b10286773a
commit
2520d49a2b
@ -1,21 +1,18 @@
|
||||
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
|
||||
|
||||
from lkeep.core.settings import settings
|
||||
|
||||
|
||||
class DBDependency:
|
||||
"""
|
||||
Класс для управления зависимостями базы данных, используя SQLAlchemy.
|
||||
"""
|
||||
|
||||
def __init__(self, db_url: str, db_echo: bool) -> None:
|
||||
def __init__(self) -> None:
|
||||
"""
|
||||
Инициализирует экземпляр класса, отвечающего за взаимодействие с асинхронной базой данных.
|
||||
|
||||
:param db_url: URL для подключения к базе данных.
|
||||
:type db_url: str
|
||||
:param db_echo: Флаг, определяющий вывод подробных логов при взаимодействии с базой данных.
|
||||
:type db_echo: bool
|
||||
"""
|
||||
self._engine = create_async_engine(url=db_url, echo=db_echo)
|
||||
self._engine = create_async_engine(url=settings.db_settings.db_url, echo=settings.db_settings.db_echo)
|
||||
self._session_factory = async_sessionmaker(bind=self._engine, expire_on_commit=False, autocommit=False)
|
||||
|
||||
@property
|
||||
|
@ -54,9 +54,14 @@ class Settings(BaseSettings):
|
||||
|
||||
:ivar db_settings: Экземпляр класса DBSettings, содержащий настройки базы данных.
|
||||
:type db_settings: DBSettings
|
||||
:ivar secret_key: Секретный ключ для шифрования
|
||||
:type secret_key: SecretStr
|
||||
"""
|
||||
|
||||
db_settings: DBSettings = DBSettings()
|
||||
secret_key: SecretStr
|
||||
|
||||
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf8", extra="ignore")
|
||||
|
||||
|
||||
settings = Settings()
|
||||
|
Loading…
x
Reference in New Issue
Block a user