main.py 964 B

1234567891011121314151617181920212223242526
  1. # 1. 先创建 FastAPI 应用实例(只创建一次)
  2. # 设置matplotlib使用非交互式后端,避免服务器环境的GUI问题
  3. import matplotlib
  4. matplotlib.use('Agg')
  5. from fastapi import FastAPI
  6. from fastapi.middleware.cors import CORSMiddleware # 导入 CORS 模块
  7. app = FastAPI() # 核心实例,只定义一次
  8. # 3. 注册路由(必须显式挂载,否则路由不生效)
  9. if __name__ == "__main__":
  10. import uvicorn
  11. # uvicorn.run(app, host="0.0.0.0", port=8000, ssl_keyfile="ssl/cert.key", ssl_certfile="ssl/cert.crt")
  12. uvicorn.run("app.main:app", host="0.0.0.0", port=8000, reload=True)
  13. # 2. 配置 CORS(在注册路由前配置)
  14. app.add_middleware(
  15. CORSMiddleware,
  16. allow_origins=["http://localhost:5173"], # 允许前端 Vite 服务地址
  17. allow_credentials=True, # 允许携带 cookies
  18. allow_methods=["*"], # 允许所有 HTTP 方法(GET/POST等)
  19. allow_headers=["*"], # 允许所有请求头
  20. )