from fastapi import FastAPI,Header,Depends,HTTPException import requests import json from enum import Enum from typing import Union from pydantic import BaseModel from sqlalchemy.orm import Session from . import crud, models, schemas 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() class User(BaseModel): user_id: str class ModelName(str, Enum): alexnet = "alexnet" resnet = "resnet" lenet = "lenet" class Item(BaseModel): name: str description: Union[str, None] = None price: float tax: Union[float, None] = None @app.post("/delete_user") async def delete(user:User,db: Session = Depends(get_db)): db_user = crud.delete_user(db,user_id=user.user_id) # print('db_user'+db_user) return {"message": "Hello delete_user"} @app.post("/update_user") async def update(user:User,db: Session = Depends(get_db)): db_user = crud.update_user(db,user_id=user.user_id) return {"message": "Hellupdate_usero World"} @app.get("/") async def root(): return {"message": "Hello World"} @app.post("/users/", response_model=schemas.User) def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)): db_user = crud.get_user_by_email(db, email=user.email) if db_user: raise HTTPException(status_code=400, detail="Email already registered") return crud.create_user(db=db, user=user) # 飞书通知 @app.get("/feishu") async def root(): headers = {'Content-Type': 'application/json'} # https://open.feishu.cn/open-apis/bot/v2/hook/5fb1b44c-3446-42ef-9b3a-dd37731567dd try: r = requests.post('https://open.feishu.cn/open-apis/bot/v2/hook/5fb1b44c-3446-42ef-9b3a-dd37731567dd', data=json.dumps({'msg_type': 'text', "content": {"text": "cityNew有新用户注册"}}), headers=headers) except(e): print('e') return {"message": "触发飞书webhook"} # 飞书通知 @app.post("/nihao") async def root(): headers = {'Content-Type': 'application/json'} # https://open.feishu.cn/open-apis/bot/v2/hook/5fb1b44c-3446-42ef-9b3a-dd37731567dd try: r = requests.post('https://open.feishu.cn/open-apis/bot/v2/hook/5fb1b44c-3446-42ef-9b3a-dd37731567dd', data=json.dumps({'msg_type': 'text', "content": {"text": "cityNew有新用户注册"}}), headers=headers) except(e): print('e') return {"message": "nihao"} # post请求 @app.post("/testPost") async def root(): return {"message": "test-post"} # 路径参数 @app.get("/path/{pathName}") async def root(pathName:ModelName): return {"message": pathName} # 查询参数 @app.get("/items/") async def read_item(skip: int = 0, limit: Union[int, None] = None): fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}] # return fake_items_db[skip : skip + limit] return f'{skip}+{limit}' # 请求体 @app.post("/postitems/") async def create_item(item: Item): return item # header参数 @app.get("/items/header") async def read_items(user_agent: Union[str, None] = Header(default=None)): return {"User-Agent": user_agent}