当前位置: 首页 > news >正文

Python(FastAPI)中ORM框架Sqlalchemy的安装及建表

一,项目中安装Sqlalchemy

在项目中执行,就会自动安装

pip install sqlalchemy[asyncio]aiomysql


二,建表
流程

(1)创建数据库引擎

# 1.创建异步引擎#ASYNC_DATAASE_URL为数据库的地址ASYNC_DATAASE_URL="mysql+aiomysql://root:630229@localhost:3306/fast_api_db?charset=utf8"async_engine=create_async_engine(ASYNC_DATAASE_URL,echo=True,# 可选删除SQL日志pool_size=10,#设置连接池活跃的连接数max_overflow=20,# 允许额外的连接数)

(2)定义模型类

# 2.定义模型类: 基类+表对应的模型类# 基类:创建时间、更新时间;书籍表:id、书名、作者、价格、出版社classBase(DeclarativeBase):create_time:Mapped[datetime]=mapped_column(DateTime,insert_default=func.now(),default=datetime.now,comment="创建时间")update_time:Mapped[datetime]=mapped_column(DateTime,insert_default=func.now(),onupdate=func.now(),default=datetime.now,comment="修改时间")classBook(Base):__tablename__="book"id:Mapped[int]=mapped_column(primary_key=True,comment="书籍id")bookname:Mapped[str]=mapped_column(String(255),comment="书名")author:Mapped[str]=mapped_column(String(255),comment="作者")price:Mapped[float]=mapped_column(comment="价格")publisher:Mapped[str]=mapped_column(String(255),comment="出版社")

(3)启动应用建表
启动命令

uvicorn main:app--reload

# 3.启动应用时建表,FASTAPI启动时调用建表的函数asyncdefcreate_tables():#创建异步引擎,创建事务建表asyncwithasync_engine.begin()asconn:awaitconn.run_sync(Base.metadata.create_all)#模型类的元数据@app.on_event("startup")asyncdefstartup_event():awaitcreate_tables()@app.get("/")asyncdefroot():return{"message":"Hello World"}

查看建表




表以建成功

或者在Navicat 中查看

完整代码

fromfastapiimportFastAPIfromdatetimeimportdatetimefromsqlalchemyimportString,DateTime,funcfromsqlalchemy.ext.asyncioimportcreate_async_enginefromsqlalchemy.ormimportDeclarativeBase,Mapped,mapped_column app=FastAPI()# 1.创建异步引擎#ASYNC_DATAASE_URL为数据库的地址ASYNC_DATAASE_URL="mysql+aiomysql://root:630229@localhost:3306/fast_api_db?charset=utf8"async_engine=create_async_engine(ASYNC_DATAASE_URL,echo=True,# 可选删除SQL日志pool_size=10,#设置连接池活跃的连接数max_overflow=20,# 允许额外的连接数)# 2.定义模型类: 基类+表对应的模型类# 基类:创建时间、更新时间;书籍表:id、书名、作者、价格、出版社classBase(DeclarativeBase):create_time:Mapped[datetime]=mapped_column(DateTime,insert_default=func.now(),default=datetime.now,comment="创建时间")update_time:Mapped[datetime]=mapped_column(DateTime,insert_default=func.now(),onupdate=func.now(),default=datetime.now,comment="修改时间")classBook(Base):__tablename__="book"id:Mapped[int]=mapped_column(primary_key=True,comment="书籍id")bookname:Mapped[str]=mapped_column(String(255),comment="书名")author:Mapped[str]=mapped_column(String(255),comment="作者")price:Mapped[float]=mapped_column(comment="价格")publisher:Mapped[str]=mapped_column(String(255),comment="出版社")# 3.启动应用时建表,FASTAPI启动时调用建表的函数asyncdefcreate_tables():#创建异步引擎,创建事务建表asyncwithasync_engine.begin()asconn:awaitconn.run_sync(Base.metadata.create_all)#模型类的元数据@app.on_event("startup")asyncdefstartup_event():awaitcreate_tables()@app.get("/")asyncdefroot():return{"message":"Hello World"}
http://www.rkmt.cn/news/1459092.html

相关文章:

  • 5分钟快速上手RVC-WebUI语音克隆:零基础实现高质量音色转换
  • 深圳宇舶镂空手表回收2026,潮流腕表变现避压价套路 - 奢侈品回收测评
  • 告别百度网盘龟速!保姆级教程:从官网下载到激活SecureCRT 8.7.3和SecureFX
  • 【Redis】Cluster集群Day11(2026年)
  • ThinkPad开机报错0183/0251/0271?别慌,手把手教你进BIOS重置EFI变量和CMOS时间
  • 谷歌 Phone 应用推新功能防 AI 仿冒诈骗,6 月安卓更新还有多项亮点
  • DOS环境下CRC-4校验全套工具:汇编实现、查表法程序与一键编译脚本
  • 2026 石家庄翡翠回收:闲置翡翠变现靠谱渠道全盘点 - 奢侈品回收评测
  • Qwen3.6-Plus实战指南:智能体编程能力与VS Code深度集成
  • Vivado里SelectIO Wizard IP复用报错?手把手教你解决‘IDELAYCTRLs in same group have conflicting connections’
  • JeecgBoot实战:教你给用户信息表(p_user_info)的弹窗关联上地址和窗口信息(附完整前后端代码)
  • 2026石家庄圣罗兰回收,你的包比想象中值钱 - 奢侈品回收评测
  • 从沙子到车辙(5.1):裸机编程——一人独掌天下
  • 终极ncmdump教程:5分钟掌握网易云NCM音乐完美转换MP3的完整方法
  • 英伟达黄仁勋线上微软大会演讲:三年合作催生新款 Surface 设备
  • 2026石家庄名包回收,别急着卖!看完这五条,轻松多拿好几千 - 奢侈品回收评测
  • 2026大模型推荐排行 权威评测与选型全指南
  • 2026武汉黄金回收,这3个潜规则门店老板不会告诉你 - 奢侈品回收测评
  • 小程序毕业设计-基于python的智能健身助手系统健康饮食健身计划智能健身助手小程序(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 重庆奢侈品回收怎么选?解放碑真伪鉴定与商家对比指南 - 诚鑫名品
  • TOPMODEL水文模拟Fortran源码集(含地形指数驱动的产汇流计算模块)
  • STC89C51自动门控制实战包:含Proteus仿真工程、可运行源码、LCD显示与多路硬件报警逻辑
  • SCCB vs I2C:时序图深度对比与FPGA Verilog实现要点(以Xilinx Vivado为例)
  • 如何识别AI领域中的信息噪声?基于Grok系列的信源验证方法论
  • 告别硬编码!用YAML文件+rosparam优雅管理你的ROS机器人配置(以TurtleBot3为例)
  • 诺基亚贝尔实验室与巴黎理工学院联手破解AI“格式枷锁“
  • Android ROM一键解包终极指南:支持10+格式的完整工具链
  • 二阶ADRC控制仿真工具集:含ESO建模、频响分析与多版本Simulink闭环模型
  • 重庆渝中区奢侈品回收实力榜|6家本地门店梯队排名参考 - 诚鑫名品
  • 枣庄市中区、薛城区、峄城区、台儿庄区、山亭区、滕州市本地漏水检测权威机构-消防/喷淋/自来水/市政管道地埋电缆短路故障 - 资讯热点