初始化

This commit is contained in:
2026-09-03 14:31:25 +08:00
parent 30dd0bea14
commit 64a51f2567
23 changed files with 2091 additions and 144 deletions

58
main.py Normal file
View File

@@ -0,0 +1,58 @@
import logging
import models
from contextlib import asynccontextmanager
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from sqlmodel import SQLModel
from core.db import engine
from core.config.settings import settings
from api.scheduler_api import scheduler_router
from api.lottery_api import lottery_router
from core.task.dlt_scheduler import scheduler
# 配置日志
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
# lifespan生命周期
@asynccontextmanager
async def lifespan(app: FastAPI):
# ========== 启动时执行 ==========
logger.info("服务启动,开始创建数据表")
# 同步建表
SQLModel.metadata.create_all(engine)
# 启动定时调度器
scheduler.start()
yield # 此处交出控制权,服务开始运行
# ========== 关闭时执行 ==========
logger.info("服务关闭,释放资源")
scheduler.shutdown()
app = FastAPI(lifespan=lifespan)
app.include_router(scheduler_router)
app.include_router(lottery_router)
app.add_middleware(
CORSMiddleware, # type: ignore[arg-type]
allow_origins=settings.ALLOWED_ORIGINS,
allow_credentials=True,
allow_methods=settings.ALLOWED_METHODS,
allow_headers=settings.ALLOWED_HEADERS,
)
@app.get("/")
def main():
return {"message": "Hello World"}
# 启动服务 --> uvicorn: Python中的轻量级web服务器
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)