上传文件至「/」
This commit is contained in:
BIN
Binary file not shown.
+21
@@ -0,0 +1,21 @@
|
||||
from sqlalchemy import *
|
||||
from sqlalchemy.orm import declarative_base, sessionmaker
|
||||
|
||||
db_url = "mysql+pymysql://root:123456@127.0.0.1:3306/ai111?charset=utf8mb4"
|
||||
engine = create_engine(db_url)
|
||||
|
||||
Base = declarative_base()
|
||||
|
||||
Session = sessionmaker(bind=engine
|
||||
, autoflush=False
|
||||
, autocommit=False
|
||||
)
|
||||
|
||||
|
||||
def get_db():
|
||||
db = Session()
|
||||
try:
|
||||
yield db
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
from fastapi import FastAPI
|
||||
from day22.api.order_api import OrderAPI
|
||||
|
||||
from day22.database import engine, Base
|
||||
from day22.model import order_model
|
||||
Base.metadata.create_all(engine)
|
||||
|
||||
app = FastAPI(title='订单系统')
|
||||
|
||||
app.include_router(OrderAPI)
|
||||
|
||||
if __name__ == '__main__':
|
||||
import uvicorn
|
||||
uvicorn.run(app, host='127.0.0.1', port=8000)
|
||||
@@ -0,0 +1,36 @@
|
||||
from fastapi import APIRouter,Depends,HTTPException
|
||||
from day22.model.order_model import Order
|
||||
from day22.schema.order_schema import Request,OrderResponse
|
||||
from day22.database import get_db
|
||||
from day22.dao.order_dao import *
|
||||
|
||||
OrderAPI = APIRouter(prefix="/orders", tags=["订单管理"])
|
||||
|
||||
@OrderAPI.post("/orders",summary='添加订单接口')
|
||||
def create_order(order: Request,db=Depends(get_db)):
|
||||
d = order.model_dump()
|
||||
r = add_student_dao(o=d, db=db)
|
||||
if not r:
|
||||
raise HTTPException(status_code=500, detail='服务器繁忙,请稍后添加!')
|
||||
return OrderResponse(totals=1, data=d)
|
||||
|
||||
# ③ 编写put接口对订单进行更新操作
|
||||
@OrderAPI.put("/orders/{id}",summary='更新订单接口')
|
||||
def update_order(id: int, order: Request,db=Depends(get_db)):
|
||||
d = order.model_dump(exclude_unset=True)
|
||||
r = update_orders_dao(id=id, update_data=d, db=db)
|
||||
if not r:
|
||||
raise HTTPException(status_code=500, detail='没有更新!')
|
||||
return {'code': 200, 'totals': r, 'detail': '更新成功'}
|
||||
|
||||
# ④ 编写get接口对订单进行查询操作
|
||||
@OrderAPI.get("/orders/{id}",summary='查询订单接口')
|
||||
def get_order(id: int,db=Depends(get_db)):
|
||||
req = get_order_dao(id = id, db=db)
|
||||
return req
|
||||
|
||||
# ⑤ 编写delete接口对订单进行删除操作
|
||||
@OrderAPI.delete("/orders/{id}",summary='删除订单接口')
|
||||
def delete_order(order_id: int, db=Depends(get_db)):
|
||||
r = delete_order_dao(id, db=db)
|
||||
return {'code': 200, 'totals': r, 'detail': '删除成功'}
|
||||
@@ -0,0 +1,46 @@
|
||||
from day22.model.order_model import Order
|
||||
|
||||
|
||||
def add_student_dao(o,db):
|
||||
try:
|
||||
o1 = Order( **o)
|
||||
db.add(o1)
|
||||
except:
|
||||
db.rollback()
|
||||
return False
|
||||
else:
|
||||
db.commit()
|
||||
return True
|
||||
|
||||
|
||||
def update_orders_dao(id,update_data,db):
|
||||
try:
|
||||
rows = db.query( Order ).filter( Order.id == id ).update( update_data )
|
||||
except:
|
||||
db.rollback()
|
||||
return False
|
||||
else:
|
||||
db.commit()
|
||||
return rows
|
||||
|
||||
|
||||
def get_order_dao(id,db):
|
||||
try:
|
||||
req = db.query(Order).filter(Order.id == id).all()
|
||||
except:
|
||||
db.rollback()
|
||||
return False
|
||||
else:
|
||||
db.commit()
|
||||
return [{"order_id":i.id,'order_title':i.title,"user_id":i.userid,"create_date":i.create_date,"update_date":i.update_date} for i in req]
|
||||
|
||||
|
||||
def delete_order_dao(id,db):
|
||||
try:
|
||||
rows = db.query(Order).filter(Order.id == id).delete()
|
||||
except:
|
||||
db.rollback()
|
||||
return False
|
||||
else:
|
||||
db.commit()
|
||||
return rows
|
||||
Reference in New Issue
Block a user