Files
zjjk/backend/app/main.py
2026-04-08 20:04:40 +08:00

43 lines
1.2 KiB
Python

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from app.api.routes import router
from app.core.config import CAPITAL_IMAGE_UPLOADS_DIR, MAIN_CAPITAL_FLOW_UPLOADS_DIR
from app.core.bootstrap import bootstrap_data
from app.services.sync_scheduler import sync_scheduler
def create_app() -> FastAPI:
app = FastAPI(
title="Southbound Capital Monitor",
version="0.1.0",
description="南向资金监控平台 API",
)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
bootstrap_data()
app.mount("/capital-images/uploads", StaticFiles(directory=CAPITAL_IMAGE_UPLOADS_DIR), name="capital-image-uploads")
app.mount("/main-capital-flow-images", StaticFiles(directory=MAIN_CAPITAL_FLOW_UPLOADS_DIR), name="main-capital-flow-images")
@app.on_event("startup")
def startup_sync_scheduler() -> None:
sync_scheduler.start()
@app.on_event("shutdown")
def shutdown_sync_scheduler() -> None:
sync_scheduler.stop()
app.include_router(router, prefix="/api")
return app
app = create_app()