发布时间:2026/9/2 21:01:20
Python的Web框架“FastApi“常用的ORM框架 安装第三方库sqlalchemy让你用 Python 类和对象来操作数据库表和数据把 SQL 语句翻译成 Python 代码。加[asyncio]确保greenlet被安装让你能用create_async_engineaiomysql负责真正的数据库网络通信是异步引擎的底层驱动pip install sqlalchemy[asyncio] aiomysqlfrom fastapi import FastAPI,Path,Query,HTTPException,Depends from sqlalchemy.ext.asyncio import create_async_engine,async_sessionmaker,AsyncSession from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, MappedColumn from sqlalchemy import func,DateTime,String,Float,select # 数据库URL root 用户名 admin数据库密码 python_ceshi数据库名 ASYNC_DATABASE_URL mysqlaiomysql://root:adminlocalhost:3306/python_ceshi?charsetutf8 # 创建异步引擎 async_engine create_async_engine( ASYNC_DATABASE_URL, echoTrue, pool_size10, max_overflow10, ) # 创建异步会话工厂 AsyncSessionLocal async_sessionmaker( bind async_engine, class_ AsyncSession, expire_on_commit False, ) # 创建基类,所有的模型都要继承基类,为所有的模型设置创建时间和修改时间字段 class Base(DeclarativeBase): create_time: Mapped[datetime] mapped_column(DateTime,insert_defaultfunc.now(),defaultfunc.now(),comment创建时间) update_time: Mapped[datetime] mapped_column(DateTime,insert_defaultfunc.now(),onupdatefunc.now(),comment修改时间) # 定义模型类继承 Base class User(Base): # ← 继承 Base __tablename__ users # ← 指定表名 # 写n个字段名查询的时候才能查到n个 id Column(Integer, primary_keyTrue) name Column(String(50)) age Column(Integer) #创建表方法 async def create_table(): async with async_engine.begin() as conn: await conn.run_sync(Base.metadata.create_all) # 依赖项 用户获取数据库会话 async def get_db(): async with AsyncSessionLocal() as session: try: yield session await session.commit() except Exception as e: await session.rollback() raise e finally: await session.close() #启动阶段运行 uvicorn main:app --reload 命令时FastAPI 会立刻调用这个函数。 asynccontextmanager async def lifespan_context(app: FastAPI): # 进入时执行启动阶段 await create_table() yield # 必须标记进入阶段结束运行阶段开始 # 退出时执行关闭阶段 app FastAPI(lifespanlifespan_context) app.get(/) # Depends(get_db) 是 FastAPI 的依赖注入系统 #它的作用是在每个请求中自动获取一个数据库会话AsyncSession并把它注入到你的路由函数里。 async def index(db: AsyncSession Depends(get_db)): # 获取全部的用户信息 return (await db.scalars(select(User))).all()

相关新闻

2026/9/2 21:01:20

鲜花网站课程设计全攻略:从需求拆解到答辩避坑

简介:这是一份基于HTML5、CSS3与JavaScript的鲜花网站课程设计项目,主要面向计算机相关专业学生及前端入门开发者,用于完成网页设计类课程作业或积累仿真实战经验。项目不仅使用语义化标签搭建页面框架,借助Flex/Grid实现响应式布…

2026/9/2 21:01:20

论文双降我试了毕业之家,顺带把全流程工具捋了一遍

写得不错,信息搜集得比较全面了。现在我来写这篇分享帖。 我需要写一篇帮助论文季人群选择辅助工具的分享帖,结合: 毕业之家(AI一键双降,DeepSeek R1满血模型学术语言模型,降重复率AIGC率,保可读…

2026/9/2 20:56:20

资源站源码选型与部署实战:PHP建站、SEO优化到长期运营

简介:这是一套基于ASP的完整免费资源站源码,面向网站开发初学者、快速建站用户及二次开发者,可帮助快速搭建并理解完整站点。压缩包内包含完整的前端页面、服务端脚本、数据库配置及样式交互文件,共包含1119个相关文件&#xff0c…

2026/9/2 21:16:21

Geek 对比 Revo,哪款免安装卸载工具更适合你

极简主义与全能战士的碰撞:两款卸载工具的哲学分野 在 Windows 生态中,软件卸载往往被简化为“点击删除”的机械动作。然而,对于追求系统极致纯净的极客和高级用户而言,真正的挑战在于如何清除那些隐藏在注册表深处、AppData 文件…

2026/9/2 21:16:21

深挖历史版本,ipatool 助力 iOS 兼容性测试与逆向分析

为什么历史版本成了“黑盒” 在 iOS 生态的长期维护与安全研究中,我们常面临一个尴尬的现实:App Store 只向普通用户和开发者提供应用的“最新版本”。一旦新版本推送上线,旧版本的 IPA 安装包便仿佛从网络中蒸发,难以通过官方渠道…

2026/9/2 21:16:21

从零配置虚拟 iPhone,vphone-cli 完整工作流复盘

硬件门槛与底层权限配置 在 macOS 上运行真实的 iOS 系统并非简单的软件安装,而是一次对系统底层虚拟化能力的深度调用。vphone-cli 的核心依赖于 Apple Silicon 架构(M 系列芯片)特有的 Virtualization.framework,这意味着 Intel…

2026/9/2 21:16:21

TinyMCE格式刷插件实战:配置、原理与避坑指南

简介:TinyMCE格式刷插件压缩包,专为使用TinyMCE富文本编辑器的前端开发者与内容管理维护人员准备,解决多段文本快速复制格式、保持排版风格一致的问题。资源共2个文件,整体仅8KB,包含一个JavaScript插件文件与一份txt说…

2026/9/2 21:16:21

从EDG的逆袭看团队建设:失败、复盘与长期主义的冠军之路

每到世界赛接近尾声,我总会想起那只 EDG。不是因为它在 2021 年拿下了全球总决赛冠军,而是因为在那之前,它几乎把所有关于“意难平”的剧本都演过了一遍:联赛里是霸主,到了世界赛却像换了支队伍;阵容明明不…

2026/9/2 21:11:21

Codex CLI 安装配置与排错:从 binary 报错到接入 DeepSeek 完整指南

Codex CLI 是 OpenAI 提供的本地命令行编码代理。它不是简单聊天框,而是能读取当前项目目录、理解代码结构、直接修改文件并执行命令的终端工具。很多开发者在安装完 Codex CLI 后,并不是卡在模型能力上,而是卡在环境问题上:启动插…

2026/9/1 16:02:17

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/2 9:00:32

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/2 8:41:06

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/2 0:03:41

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 0:03:41

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

这次我们来看一个很实用的 DeepSeek 落地场景:用 DeepSeek 把英文视频字幕自动翻译成中文。具体案例是《恶魔君》1989 年第 28 集的英转中字幕任务,标题写得很直白,但背后其实是一整套可以复用的技术流程:字幕解析、模型调用、批量…

2026/9/2 0:03:41

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

当你家里摆着一台天猫精灵,却总希望语音助手偶尔“不正经”一点,不用官方腔回答问题,而是张口就接几句搞笑段子,会是什么体验?我最近动手验证了一下这个想法——没有去改装任何市面上现有的智能音箱,而是直…

2026/9/2 1:15:22

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/2 1:15:22

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/2 1:15:20

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…