初始提交

This commit is contained in:
fanbook-wangdage
2025-12-28 17:01:42 +08:00
parent 3cace74c08
commit d67e42b067
20 changed files with 1284 additions and 0 deletions

35
app/extensions.py Normal file
View File

@@ -0,0 +1,35 @@
import logging
import coloredlogs
import secrets
import string
from pymongo.mongo_client import MongoClient
from pymongo.server_api import ServerApi
from app.config_loader import config_loader
logger = logging.getLogger("app")
coloredlogs.install(level=config_loader.LOGGING_LEVEL, logger=logger, fmt=config_loader.LOGGING_FORMAT)
client = None
def init_mongo(uri: str, test_mode=False):
global client
if test_mode:
logger.info("Running in test mode, skipping MongoDB connection")
return
client = MongoClient(uri, server_api=ServerApi('1'))
try:
client.admin.command('ping')
logger.info("MongoDB connected successfully")
except Exception as e:
logger.error(f"MongoDB connection failed: {e}")
raise
def generate_code(length=6):
"""生成数字验证码"""
return ''.join(secrets.choice('0123456789') for _ in range(length))
def generate_numeric_id(length=8):
"""生成数字ID"""
return ''.join(secrets.choice(string.digits) for _ in range(length))