from contextlib import asynccontextmanager from fastapi import FastAPI, HTTPException, Response, Depends, APIRouter from typing import Optional, Annotated from datetime import datetime, timedelta from jose import JWTError, jwt from sqlmodel import Session, select from database import create_db_and_tables, engine from models import Tenant, User, Project from dependencies import * from api import login_reg, manage_project, manage_tanant, manage_user # 用于生成和验证JWT的密钥 SECRET_KEY = "your_secret_key" ALGORITHM = "HS256" # @app.on_event("startup") # def on_startup(): # create_db_and_tables() @asynccontextmanager async def lifespan(app: FastAPI): create_db_and_tables() yield app = FastAPI(lifespan=lifespan) app.include_router(login_reg.router) app.include_router(manage_tanant.router) app.include_router(manage_user.router) app.include_router(manage_project.router)