Files
fastapi_tutor_yb/router/workhome/wk_0917.py
T

51 lines
1.4 KiB
Python

from fastapi import APIRouter,Query,Request,Path,Query,Body,Form,File,UploadFile,HTTPException,Response
from pydantic import constr,Field,field_validator,BaseModel, EmailStr, HttpUrl, IPvAnyAddress, conint,model_validator
from typing import Annotated,Literal
from datetime import date, timedelta
import datetime
from decimal import Decimal
from time import time
from uuid import UUID
import json,os,logging
from hashlib import md5 # ①导入md5加密
from libplus.logpluslplus import Log
route = APIRouter(prefix="/wk0917",tags=["wk0917"])
products = [{"name":"a","price":123.9,"stock":2},{"name":"a","price":123.9,"stock":2},{"name":"a","price":123.9,"stock":2},]
class Product(BaseModel):
name:str
price:float
stock: int
@model_validator(mode='after') #
def check(self):
pnames = [p['name'] for p in products]
if self.name in pnames: raise HTTPException(status_code="409",detail="name duplicate")
return self
@route.get("/product")
def product(name:str):
for p in products:
if name == p["name"]: return p
else: return Response(status_code="409",content="not find!")
@route.post("/product")
def product(p: Product):
products.append(p.model_dump())
return p
orders = []
@route.get("/order")
def order(name:str):
return name
@route.post("/order")
def order(name:str):
orders.append(name)
return name