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

11-ORM-建表

from datetime import datetimefrom fastapi import FastAPI, Depends
from sqlalchemy import DateTime, func, String, Float, select
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker, AsyncSession
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_columnapp = FastAPI()# 1. 创建异步引擎
ASYNC_DATABASE_URL = "mysql+aiomysql://root:123456@localhost:3306/FastAPI_first?charset=utf8"
async_engine = create_async_engine(ASYNC_DATABASE_URL,echo=True,  # 可选,输出 SQL 日志pool_size=10,  # 设置连接池活跃的连接数max_overflow=20  # 允许额外的连接数
)# 2. 定义模型类: 基类 + 表对应的模型类
# 基类:创建时间、更新时间;书籍表:id、书名、作者、价格、出版社
class Base(DeclarativeBase):create_time: Mapped[datetime] = mapped_column(DateTime, insert_default=func.now(), default=func.now, comment="创建时间")update_time: Mapped[datetime] = mapped_column(DateTime, insert_default=func.now(), default=func.now, onupdate=func.now(), comment="修改时间")class Book(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(Float, comment="价格")publisher: Mapped[str] = mapped_column(String(255), comment="出版社")# 3. 建表:定义函数建表 → FastAPI 启动的时候调用建表的函数
async def create_tables():# 获取异步引擎,创建事务 - 建表async with async_engine.begin() as conn:await conn.run_sync(Base.metadata.create_all)  # Base 模型类的元数据创建@app.on_event("startup")
async def startup_event():await create_tables()@app.get("/")
async def root():return {"message": "Hello World"}
http://www.jsqmd.com/news/433188/

相关文章:

  • 2026算法备案|新手必看!零驳回实操指南,小白也能轻松过✨
  • DeepSeek V4震撼曝光!绕过英伟达,国产芯片厂商优先适配,AI新生态即将诞生!
  • 驱动高端智造:全星QMS——汽车电子与半导体行业的质量数字化引擎
  • 普通人如何抓住风口!转行AI大模型,收入暴涨10倍+,2026年你要悄悄努力然后惊艳所有人
  • 10-依赖注入
  • LangChain vs LangGraph vs LlamaIndex:Agent开发框架选型真相,深度解析与实战策略!
  • 定制N340迪可橡皮布,2026年这些厂家值得选,UV黑墨盒/FUNAI墨盒/998凤凰橡皮布,迪可橡皮布批发口碑排行 - 品牌推荐师
  • MySQL学习日记——DAY02
  • 程序员转行大模型:抓住新一代AI的黄金机遇,非常详细收藏我这一篇就够了
  • Deepseek V4即将发布!三大核心能力曝光,国产AI芯片适配引关注
  • RPA与AI融合:解锁企业数字化转型新路径
  • DeepSeek V4震撼发布!百万token上下文+原生多模态+国产芯片适配,中国AI迎来颠覆性突破!
  • 大模型应用卡顿?别只堆参数!数据库选错,再强的模型也白搭!
  • RPA与AI的区别及融合路径:解锁企业自动化新未来
  • RPA与AI智能体在财务领域的实践探索与落地路径
  • 赋能卓越,驾驭未来-全星质量管理QMS软件系统-引领企业质量管理新纪元
  • 34岁转行AI大模型,刚好赶上风口!
  • LeetCode 23 合并 K 个升序链表:python3 题解
  • 12-ORM-路由中使用ORM
  • 09-中间件
  • 2026年3月木材防霉剂厂家推荐,行业测评与实用选择指南 - 品牌鉴赏师
  • 07-自定义响应数据格式
  • 2026年3月热门有气垫橡皮布厂家推荐,速来了解,压电打印喷码机/橙色溶剂墨盒/620迪可橡皮布,橡皮布源头厂家哪家好 - 品牌推荐师
  • 13-ORM-数据库操作-查询数据
  • AI大模型应用开发-LangChain核心组件详解 - 努力-
  • 2026年3月耐火材料分析仪厂家权威推荐,专业适配与行业解决方案! - 品牌鉴赏师
  • 06-响应类型-文件格式
  • IFW Dresden选定Agnitron设备
  • 2025-2026城固装修公司第三方实测报告|城固哪家装修公司靠谱?高性价比透明装修首选金匠装饰 - 一个呆呆
  • 基础篇1