初始化

This commit is contained in:
maruizhi
2026-09-19 16:25:15 +08:00
parent 47658d5003
commit 890f43b4a3
8 changed files with 120 additions and 0 deletions
BIN
View File
Binary file not shown.
+24
View File
@@ -0,0 +1,24 @@
from fastapi import APIRouter,Depends
from dao.order_dao import select_orders,insert_users,update_users,delete_users
from schema.order_schema import OrderResponse
orderapi = APIRouter()
@orderapi.get('/orders')
def get_orders(data=Depends(select_orders)):
l = []
for i in data:
l.append({'id':i.id,'title':i.title,'userid':i.userid,'create_date':i.create_date,'update_date':i.update_date})
return l
@orderapi.post('/orders',response_model=OrderResponse)
def add_order(data=Depends(insert_users)):
return data
@orderapi.put('/orders',response_model=OrderResponse)
def put_order(data=Depends(update_users)):
return data
@orderapi.delete('/orders')
def delete_order(data=Depends(delete_users)):
return data
+40
View File
@@ -0,0 +1,40 @@
from fastapi import Form,HTTPException
from model.order_model import OrderModel
from schema.order_schema import OrderRequest
from util.database import db
def select_orders():
try:
order_list = db.query(OrderModel).all()
return order_list
except:
raise HTTPException(status_code=500,detail="查询异常")
def insert_users(req:OrderRequest=Form()):
try:
data = req.model_dump()
db.add(OrderModel(**data))
db.commit()
except Exception as e:
db.rollback()
raise HTTPException(status_code=500,detail="查询异常")
return req.model_dump()
def update_users(id:int,req:OrderRequest=Form()):
try:
db.query(OrderModel).filter(OrderModel.id == id) \
.update(req.model_dump(exclude_unset=True))
except Exception as e:
raise HTTPException(status_code=500,detail="更新异常")
else:
db.commit()
return req.model_dump(exclude_unset=True)
def delete_users(id:int):
try:
db.query(OrderModel).filter(OrderModel.id == id).delete()
except Exception as e:
raise HTTPException(status_code=500,detail="删除异常")
else:
db.commit()
return {'code':200,'details':'删除成功'}
+23
View File
@@ -0,0 +1,23 @@
# 使用orm结合fastapi接口对数据库的订单表进行增删改查
# ① 连接数据库,定义数据库表模型,以及数据库会话工具
# ② 定义请求体模型,编写post接口对数据库的订单表插入数据
# ③ 编写put接口对订单进行更新操作
# ④ 编写get接口对订单进行查询操作
# ⑤ 编写delete接口对订单进行删除操作
# ⑥ 总结下orm跟fastapi接口的结合使用步骤以及简单的语法结构框架
'''
# 思考下:
现在需要创建三个目录,api、model、schema
① api目录里编写一个文件order_api.py ,利用api路由分发,存放编写好的以上四个订单增删改查接口
② model目录里编写一个order_model.py ,存放的是订单表的表模型类
③ schema目录里编写一个 order_schema.py , 存放的是订单表的相关请求体、相应体模型
④ 在项目目录下创建一个 main.py文件,从main.py文件启动整个接口程序
尝试操作下!
'''
from fastapi import FastAPI
from api.order_api import orderapi
app = FastAPI()
app.include_router(orderapi,tags=['订单表'])
+13
View File
@@ -0,0 +1,13 @@
from sqlalchemy import Integer,String,DATETIME,Column
from util.database import Base,engine
from datetime import datetime
class OrderModel(Base):
__tablename__ = 'order'
id = Column(Integer,primary_key=True,autoincrement=True)
title = Column(String(50),nullable=False)
userid = Column(Integer,nullable=False)
create_date = Column(DATETIME,default=datetime.now)
update_date = Column(DATETIME,default=datetime.now,onupdate=datetime.now)
Base.metadata.create_all(engine)
+11
View File
@@ -0,0 +1,11 @@
from pydantic import BaseModel
class OrderRequest(BaseModel):
title:str|None = None
userid:int|None = None
class OrderResponse(BaseModel):
code:int = 200
detail:str = 'ok'
title:str|None
userid:int|None
+9
View File
@@ -0,0 +1,9 @@
from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base,sessionmaker
db_url = 'mysql+pymysql://root:123456@127.0.0.1:3306/ai0824?charset=utf8mb4'
engine = create_engine(db_url,pool_size=50)
Base = declarative_base()
Session = sessionmaker(bind=engine,autoflush=False,autocommit=False)
db = Session()
Binary file not shown.