|
3 mēneši atpakaļ | |
---|---|---|
SERVER | 3 mēneši atpakaļ | |
.gitignore | 4 mēneši atpakaļ | |
README.md | 3 mēneši atpakaļ | |
README_DEV.md | 3 mēneši atpakaļ | |
README_UTILS.md | 3 mēneši atpakaļ | |
requirements.txt | 3 mēneši atpakaļ |
配置模块提供了统一的配置管理接口,主要功能包括:
项目使用 SQLAlchemy ORM 框架连接 MySQL 数据库,主要配置项如下:
class DatabaseConfig:
host: str = "localhost" # 数据库主机
port: int = 3306 # 数据库端口
user: str = "root" # 数据库用户名
password: str = "" # 数据库密码
name: str = "question_bank" # 数据库名称
使用示例:
from app.database.database import Database
# 初始化数据库连接
Database.initialize()
# 使用上下文管理器管理会话
with db.session() as session:
# 执行查询
users = db.execute_query("SELECT * FROM users WHERE age > :age", {"age": 18})
# 执行非查询
affected_rows = db.execute_non_query(
"UPDATE users SET status = :status WHERE id = :id",
{"status": "active", "id": 1}
)
# 批量操作
user_data = [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30}
]
inserted_rows = db.batch_execute(
"INSERT INTO users (name, age) VALUES (:name, :age)",
user_data
)
# 兼容旧版接口
from app.database.db_mysql import get_db
db = next(get_db())
result = db.execute("SELECT * FROM users")
db.commit()
新特性说明:
注意事项:
配置模块提供了统一的配置管理接口,主要功能包括:
from app.config import get_config
config = get_config()
from app.config import get_config_value
# 获取配置项值,如果不存在则返回默认值
value = get_config_value('key', default='default_value')
from app.config import on_config_change
def callback():
print('配置已变更')
on_config_change(callback)
所有接口都可能会抛出RuntimeError
异常,建议在使用时进行捕获处理:
try:
config = get_config()
except RuntimeError as e:
print(f'获取配置失败:{e}')
项目支持多环境配置,通过不同的配置文件管理:
通过设置环境变量APP_ENV
来切换环境:
在项目根目录下创建.env
文件,内容如下:
# 开发环境
ENV=dev
# 生产环境
# ENV=prod
注意:
临时设置(仅当前命令行窗口有效):
:: 开发环境
set ENV=dev
:: 生产环境
set ENV=prod
永久设置:
# 开发环境
export ENV=dev
# 生产环境
export ENV=prod
配置项 | 开发环境 | 生产环境 |
---|---|---|
app.debug | true | false |
database.host | localhost | db.prod.example.com |
database.name | question_bank_dev | question_bank_prod |
logging.path | logs | /var/log/app |
logging.level | DEBUG | INFO |
logging.retention | 7 天 | 30 天 |
logging.max_size | 10MB | 100MB |
logging.backup_count | 5 | 30 |
项目使用 loguru 库进行日志管理,主要特性包括:
开发环境:
生产环境:
使用示例:
from app.logger import logger
logger.info("这是一条信息日志")
logger.error("这是一条错误日志", exc_info=True)
按日期分割日志文件:
自动清理旧日志:
日志压缩:
线程安全:
异常处理: