from fastapi import Depends, FastAPI, HTTPException from sqlalchemy.orm import Session # from . import crud, models, schemas import crud, models, schemas from database import SessionLocal, engine # from .database import SessionLocal, engine models.Base.metadata.create_all(bind=engine) app = FastAPI() # Dependency def get_db(): db = SessionLocal() try: yield db finally: db.close() # 默认首页 @app.get("/") async def root(): return {"message": "Hello World"} # 创建用户 @app.post("/users/") # schemas.UserCreate决定了swagger文档 def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)): db_user = crud.create_user(db, user) if db_user: raise HTTPException(status_code=400, detail="openId already registered") return crud.create_user(db=db, user=user) # 分页查询-用户 @app.get("/users/") def read_users(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): users = crud.get_users(db, skip=skip, limit=limit) return users # 根据openId查询用户 @app.get("/users/{openId}") def read_user(openId, db: Session = Depends(get_db)): db_user = crud.get_user_by_openId(db, openId=openId) if db_user is None: raise HTTPException(status_code=404, detail="User not found") return db_user