AI项目博客
记录 AI 工程实践与大模型应用
共 11 篇文章

标签:协程

FastAPI & SQLAlchemy 实战(十):FastAPI + SQLAlchemy,一个可运行的增删改查接口-AI项目博客

FastAPI & SQLAlchemy 实战(十):FastAPI + SQLAlchemy,一个可运行的增删改查接口

「FastAPI & SQLAlchemy 实战」系列共 10 篇,从协程基础讲到数据库接口。这是最后一篇。 结论:用 Depends(get_db) 给每个请求注入一个 Session,接口里只做业务逻辑;请求结束自动关闭会话。这样就把前面学的 FastAPI 和 SQLAlchemy 接成了一套可运行的服务。 一、项目结构 myproject/ ├── main.py # FastAPI 接口 ├── base.py # Base …

赞(0)adminadminPython 阅读(17)去评论
FastAPI & SQLAlchemy 实战(八):SQLAlchemy 入门:ORM、Engine、Session 与建表-AI项目博客

FastAPI & SQLAlchemy 实战(八):SQLAlchemy 入门:ORM、Engine、Session 与建表

「FastAPI & SQLAlchemy 实战」系列共 10 篇,从协程基础讲到数据库接口。这是第 8 篇。 结论:SQLAlchemy 用三层完成数据库操作:Engine 管连接,Base 管表结构,Session 管一次会话里的增删改查。 一、ORM 是什么 ORM 把表映射成类、把行映射成对象:Department 类对应 departments 表,一个 Department 对象对应一行记录。好处是屏蔽数据库差异、少写 SQ…

赞(0)adminadminPython 阅读(27)评论(1)
FastAPI & SQLAlchemy 实战(七):请求体、Pydantic 与 APIRouter 路由拆分-AI项目博客

FastAPI & SQLAlchemy 实战(七):请求体、Pydantic 与 APIRouter 路由拆分

「FastAPI & SQLAlchemy 实战」系列共 10 篇,从协程基础讲到数据库接口。这是第 7 篇。 结论:POST/PUT 的 JSON 数据用 Pydantic 模型接收;项目变大后,用 APIRouter 按模块拆路由,主应用只负责挂载。 一、请求体:用 BaseModel 定义结构 from fastapi import FastAPI from pydantic import BaseModel class Item…

赞(0)adminadminPython 阅读(10)去评论
FastAPI & SQLAlchemy 实战(六):路径参数与查询参数,类型注解就是校验-AI项目博客

FastAPI & SQLAlchemy 实战(六):路径参数与查询参数,类型注解就是校验

「FastAPI & SQLAlchemy 实战」系列共 10 篇,从协程基础讲到数据库接口。这是第 6 篇。 结论:路径里的 {name} 是路径参数,其余函数参数默认是查询参数;类型注解决定转换和校验,类型不对 FastAPI 自动返回 422。 一、路径参数:自动转换类型 @app.get("/items/{item_id}") async def read_item(item_id: int): return {"item_id…

赞(0)adminadminPython 阅读(13)去评论
FastAPI & SQLAlchemy 实战(五):第一个接口、自动文档与同步/异步函数-AI项目博客

FastAPI & SQLAlchemy 实战(五):第一个接口、自动文档与同步/异步函数

「FastAPI & SQLAlchemy 实战」系列共 10 篇,从协程基础讲到数据库接口。这是第 5 篇。 结论:FastAPI 的最小程序只有三部分:FastAPI() 实例、路径装饰器、处理函数。启动后访问 /docs 就能看到自动生成的接口文档。 一、安装与最小程序 pip install fastapi uvicorn from fastapi import FastAPI app = FastAPI() @app.get(…

赞(0)adminadminPython 阅读(12)去评论
FastAPI & SQLAlchemy 实战(四):WSGI 与 ASGI,为什么 FastAPI 要配 Uvicorn-AI项目博客

FastAPI & SQLAlchemy 实战(四):WSGI 与 ASGI,为什么 FastAPI 要配 Uvicorn

「FastAPI & SQLAlchemy 实战」系列共 10 篇,从协程基础讲到数据库接口。这是第 4 篇。 结论:WSGI 是同步接口规范,ASGI 是它的异步版本。FastAPI 基于 ASGI,生产环境用 Uvicorn 运行;同步函数会被放进线程池,异步函数直接在事件循环里跑。 一、WSGI:一次请求占一个线程 WSGI 应用是一个同步可调用对象: def application(environ, start_response…

赞(0)adminadminPython 阅读(15)去评论
FastAPI & SQLAlchemy 实战(三):Task、gather、超时与取消,并发控制的四个工具-AI项目博客

FastAPI & SQLAlchemy 实战(三):Task、gather、超时与取消,并发控制的四个工具

「FastAPI & SQLAlchemy 实战」系列共 10 篇,从协程基础讲到数据库接口。这是第 3 篇。 结论:create_task 负责启动并发,gather 负责等待结果,wait_for 负责超时,cancel 负责取消。四个工具解决协程的四种控制需求。 一、create_task:把协程变成任务 import asyncio async def my_func(name, delay): await asyncio.sl…

赞(0)adminadminPython 阅读(12)去评论
FastAPI & SQLAlchemy 实战(二):async/await 与事件循环,协程怎么被调度-AI项目博客

FastAPI & SQLAlchemy 实战(二):async/await 与事件循环,协程怎么被调度

「FastAPI & SQLAlchemy 实战」系列共 10 篇,从协程基础讲到数据库接口。这是第 2 篇。 结论:async def 定义协程函数,调用它只返回协程对象;await 让出控制权,事件循环负责在 I/O 完成后恢复执行。 一、async def 不是“立即执行” import asyncio async def hello(): print("Hello") await asyncio.sleep(1) print("…

赞(0)adminadminPython 阅读(12)去评论
FastAPI & SQLAlchemy 实战(一):线程、进程、协程,到底差在哪-AI项目博客

FastAPI & SQLAlchemy 实战(一):线程、进程、协程,到底差在哪

「FastAPI & SQLAlchemy 实战」系列共 10 篇,从协程基础讲到数据库接口。这是第 1 篇。 结论:I/O 密集型任务优先用协程,CPU 密集型任务用多进程,线程只适合少量阻塞调用或必须使用同步库的场景。 一、三者怎么选 进程线程协程 调度者操作系统操作系统程序自己(事件循环) 内存独立地址空间共享进程内存共享线程内存 切换成本高中极低 并发量几十个几百到几千几万 适合CPU 密集少量阻塞 I/O高并发 I/O 二、线…

赞(0)adminadminPython 阅读(12)去评论

AI项目博客

专注 AI 工程化落地 —— 覆盖智能体、大模型、Java AI 与 Python 的学习笔记,以及 AI 平台的项目实战记录。

关于本站文章归档

登录

找回密码

注册