12345678910111213141516171819202122232425262728293031 |
- from pydantic_settings import BaseSettings
- from pydantic import field_validator
- class DatabaseConfig(BaseSettings):
- """数据库配置"""
- host: str = "localhost"
- port: int = 3306
- user: str = "root"
- password: str = ""
- name: str = "question_bank"
- @field_validator('port')
- def validate_db_port(cls, value):
- if value < 1024 or value > 65535:
- raise ValueError('数据库端口必须在1024-65535之间')
- return value
- @field_validator('name')
- def validate_db_name(cls, value):
- if not value or len(value) < 2:
- raise ValueError('数据库名称不能为空且至少2个字符')
- return value
- def to_string(self, indent: int = 0) -> str:
- """将配置转换为字符串"""
- indent_str = ' ' * indent
- result = []
- for field_name, field_value in self.__dict__.items():
- result.append(f"{indent_str}{field_name}: {field_value}")
- return '\n'.join(result)
|