Files
zjjk/backend/app/main.py

43 lines
1.2 KiB
Python
Raw Permalink Normal View History

2026-03-20 21:47:30 +08:00
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
2026-04-08 20:04:40 +08:00
from fastapi.staticfiles import StaticFiles
2026-03-20 21:47:30 +08:00
from app.api.routes import router
2026-04-08 20:04:40 +08:00
from app.core.config import CAPITAL_IMAGE_UPLOADS_DIR, MAIN_CAPITAL_FLOW_UPLOADS_DIR
2026-03-20 21:47:30 +08:00
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()
2026-04-08 20:04:40 +08:00
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")
2026-03-20 21:47:30 +08:00
@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()