FastAPI实战:从零构建高性能Python Web API与部署指南
最近在尝试用 Python 构建高性能 Web API 时你是否还在 Flask 和 Django 之间纠结或者觉得异步框架学习曲线陡峭FastAPI 的出现以其极简的语法、自动化的文档和媲美 Node.js 的性能迅速成为 Python 后端开发的新宠。本文将带你从零开始系统性地掌握 FastAPI 的核心用法并完成一个可部署的实战项目。无论你是想快速上手一个新框架还是为微服务寻找一个高性能的 API 解决方案这篇教程都能让你在最短时间内获得可直接用于生产的技能。1. FastAPI 是什么为什么选择它在深入代码之前我们有必要理解 FastAPI 的设计哲学和它解决的问题。这能帮助你在众多框架中做出明智的选择。1.1 核心定义与特性FastAPI 是一个用于构建 API 的现代、快速高性能的 Web 框架基于 Python 3.6 的类型提示Type Hints标准。它并非一个全栈框架如 Django而是专注于 API 开发这使得它极其轻量和高效。它的核心优势体现在以下几个方面极高的性能得益于 Starlette用于 Web 处理和 Pydantic用于数据验证这两个底层库FastAPI 的性能与 Node.js 和 Go 的框架处于同一梯队远高于传统的 Flask 和 Django。快速的开发效率通过 Python 类型提示FastAPI 能自动完成请求和响应的数据验证、序列化和文档生成。你声明一个参数的类型框架就自动为你处理校验和转换。自动交互式 API 文档框架会自动生成符合 OpenAPI 和 JSON Schema 标准的交互式 API 文档Swagger UI 和 ReDoc你无需手动编写和维护。这对于前后端联调和团队协作是巨大的福音。基于标准完全基于并兼容开放的 API 标准OpenAPI以前称为 Swagger和 JSON Schema。强大的编辑器支持由于深度集成类型提示像 PyCharm 和 VS Code 这样的现代编辑器能提供无与伦比的自动补全和错误检查减少拼写错误和逻辑错误。1.2 与 Flask、Django 的简单对比为了更直观地理解 FastAPI 的定位我们可以做一个简单的对比特性FastAPIFlaskDjango定位高性能 API 框架微型 Web 框架全功能 Web 框架性能非常高异步支持中等同步可通过扩展支持异步中等同步异步视图在发展中学习曲线中等需理解类型提示平缓陡峭内置功能数据验证、文档生成、依赖注入非常少依赖扩展非常全面ORM、Admin、认证等异步支持原生、一流支持通过扩展如 Quart有限支持异步视图适合场景微服务、高性能 API、实时应用快速原型、小型应用、简单 API内容管理、大型全栈应用、需要“开箱即用”功能简单来说如果你需要构建一个对性能要求高、以 API 为核心、且希望开发效率和代码可维护性兼得的服务FastAPI 是目前 Python 生态中最优秀的选择之一。2. 环境准备与项目初始化工欲善其事必先利其器。让我们先搭建一个干净、可复现的开发环境。2.1 安装 Python 与虚拟环境FastAPI 要求 Python 3.6。建议使用 Python 3.8 或更高版本以获得最佳体验。检查 Python 版本python --version # 或 python3 --version确保输出为Python 3.x.x。创建项目目录并进入mkdir fastapi-tutorial cd fastapi-tutorial创建虚拟环境强烈推荐以隔离项目依赖Linux/macOS:python3 -m venv venv source venv/bin/activateWindows:python -m venv venv venv\Scripts\activate激活后命令行提示符前通常会显示(venv)。2.2 安装 FastAPI 及其依赖FastAPI 本体非常轻量但它运行需要一个 ASGI 服务器。最常用的是uvicorn。我们一并安装。# 使用 pip 安装 fastapi 和 uvicorn pip install fastapi uvicorn[standard]uvicorn[standard]中的standard额外包包含了高性能的httptools和uvloop依赖在 Windows 上uvloop可能不可用但无碍。2.3 初始化项目结构一个清晰的项目结构有助于长期维护。我们先创建一个简单的结构fastapi-tutorial/ ├── app/ │ ├── __init__.py │ ├── main.py # 应用主入口 │ ├── api/ # 路由模块 │ │ ├── __init__.py │ │ └── endpoints/ # 各个端点 │ │ ├── __init__.py │ │ ├── items.py │ │ └── users.py │ ├── core/ # 核心配置 │ │ ├── __init__.py │ │ └── config.py │ └── models/ # Pydantic 模型 │ ├── __init__.py │ └── schemas.py ├── requirements.txt └── README.md现在我们先从最核心的app/main.py开始。3. 第一个 FastAPI 应用Hello World让我们用最少的代码感受一下 FastAPI 的魅力。在app/main.py文件中写入以下内容# app/main.py from fastapi import FastAPI # 创建 FastAPI 应用实例 app FastAPI() # 定义一个路径操作装饰器GET 请求路径为 / app.get(/) async def read_root(): # 返回一个 JSON 响应 return {message: Hello World} # 带路径参数的端点 app.get(/items/{item_id}) async def read_item(item_id: int, q: str None): # FastAPI 会自动将 URL 中的 item_id 转换为整数并验证。 # q 是一个可选的查询参数。 return {item_id: item_id, q: q}3.1 运行应用在项目根目录fastapi-tutorial/下运行以下命令uvicorn app.main:app --reload命令解释uvicorn: ASGI 服务器。app.main:appapp.main指app包下的main.py模块app指在main.py中创建的FastAPI实例。--reload开发模式代码修改后服务器会自动重启。看到Uvicorn running on http://127.0.0.1:8000的输出后打开浏览器访问http://127.0.0.1:8000。你将看到{message:Hello World}。3.2 体验自动 API 文档这才是 FastAPI 的“杀手锏”。访问以下两个链接Swagger UI 交互式文档http://127.0.0.1:8000/docsReDoc 文档http://127.0.0.1:8000/redoc在http://127.0.0.1:8000/docs页面你可以看到我们定义的两个端点/和/items/{item_id}。你可以直接点击 “Try it out” 按钮输入参数并发送请求在页面上看到实时响应。这一切都是自动生成的无需你写一行文档代码。4. 核心概念深度解析要熟练使用 FastAPI必须理解其几个核心概念路径操作、请求参数、响应模型和依赖注入。4.1 路径操作与 HTTP 方法路径操作指的是处理特定路径URL和 HTTP 方法GET, POST, PUT, DELETE 等组合的函数。通过装饰器声明from fastapi import FastAPI app FastAPI() app.get(/items/) # 处理 GET /items/ app.post(/items/) # 处理 POST /items/ app.put(/items/{id}) # 处理 PUT /items/{id} app.delete(/items/{id}) # 处理 DELETE /items/{id} async def some_function(): ...最佳实践为资源设计清晰的 RESTful 风格路径如GET /users获取列表POST /users创建GET /users/{id}获取单个PUT /users/{id}更新DELETE /users/{id}删除。4.2 请求参数路径参数、查询参数、请求体FastAPI 通过函数参数的类型提示来智能地区分和获取不同类型的请求数据。路径参数作为 URL 路径的一部分。app.get(/items/{item_id}) async def read_item(item_id: int): # item_id 被自动转换为 int return {item_id: item_id}如果请求/items/fooFastAPI 会返回一个清晰的错误因为foo无法转换为int。查询参数URL 中?后面的键值对用于过滤、分页等。app.get(/items/) async def read_items(skip: int 0, limit: int 10): # 调用 /items/?skip20limit5 return {skip: skip, limit: limit}函数参数skip和limit有默认值因此是可选参数。如果没有默认值它们就是必需参数。请求体Body用于接收客户端发送的 JSON 数据通常用于 POST、PUT 请求。这里就需要用到Pydantic 模型。from pydantic import BaseModel from fastapi import FastAPI app FastAPI() # 定义数据模型 class Item(BaseModel): name: str description: str None price: float tax: float None app.post(/items/) async def create_item(item: Item): # FastAPI 会自动验证请求体是否符合 Item 模型 # 你可以直接使用 item.name, item.price 等 item_dict item.dict() if item.tax: price_with_tax item.price item.tax item_dict.update({price_with_tax: price_with_tax}) return item_dict当你发送一个 JSON 请求体到/items/FastAPI 会验证数据是否包含必需的name和price字段。验证price是否为浮点数。自动将 JSON 转换为Item类的实例。在文档中生成对应的 JSON Schema。4.3 响应模型与状态码你可以控制 API 返回的数据结构和状态码。响应模型使用response_model参数确保返回的数据符合你定义的 Pydantic 模型并会在文档中体现。app.post(/items/, response_modelItem, status_code201) async def create_item(item: Item): # 即使你返回一个字典FastAPI 也会用 response_model 来过滤和验证数据。 # 例如你可以在这里从数据库创建项目然后返回创建的对象。 return item这非常有用例如你的输入模型ItemIn可能包含密码字段但输出模型ItemOut会排除它。response_model能自动帮你完成这个转换。状态码使用status_code参数设置响应的 HTTP 状态码。from fastapi import FastAPI, status app.post(/items/, status_codestatus.HTTP_201_CREATED) async def create_item(item: Item): return item4.4 依赖注入系统依赖注入是 FastAPI 一个极其强大的特性它让你可以声明函数所需的“依赖项”如数据库会话、当前用户、权限检查框架会自动帮你解决和调用。from fastapi import Depends, FastAPI, HTTPException app FastAPI() # 一个简单的依赖函数 def common_parameters(q: str None, skip: int 0, limit: int 100): return {q: q, skip: skip, limit: limit} app.get(/items/) async def read_items(commons: dict Depends(common_parameters)): # FastAPI 会先调用 common_parameters将其返回值注入到 commons 参数中。 return commons app.get(/users/) async def read_users(commons: dict Depends(common_parameters)): # 同一个依赖可以在多个路径操作中复用。 return commons依赖注入的典型应用场景获取数据库会话在每个请求开始时获取连接请求结束后关闭。身份验证与授权验证 JWT Token获取当前用户信息。权限检查依赖项可以抛出HTTPException来阻止未授权的访问。共享业务逻辑如分页参数处理。5. 完整实战项目待办事项 API现在我们将综合运用以上知识构建一个简单的待办事项TodoAPI包含创建、读取、更新、删除功能并使用“内存数据库”一个 Python 列表来模拟数据持久化。5.1 项目结构细化我们使用之前创建的项目结构。更新文件如下1. 定义数据模型 (app/models/schemas.py):# app/models/schemas.py from pydantic import BaseModel from typing import Optional from datetime import datetime # 创建 Todo 时使用的模型输入 class TodoCreate(BaseModel): title: str description: Optional[str] None completed: bool False # 返回 Todo 时使用的模型输出 class Todo(TodoCreate): id: int created_at: datetime updated_at: datetime class Config: orm_mode True # 如果将来从 SQLAlchemy ORM 对象读取需要这个配置2. 创建“数据库”与核心逻辑 (app/main.py):# app/main.py from fastapi import FastAPI, HTTPException, Depends from typing import List from .models.schemas import Todo, TodoCreate from datetime import datetime app FastAPI(titleTodo API, version1.0.0) # 模拟一个内存“数据库” fake_todos_db [] current_id 1 # 依赖项获取“数据库” def get_db(): # 在实际项目中这里会 yield 一个数据库会话并在请求结束后关闭。 # 这里我们直接返回模拟的数据库列表。 return fake_todos_db, current_id # 根路径 app.get(/) async def root(): return {message: Welcome to the Todo API} # 获取所有待办事项 app.get(/todos/, response_modelList[Todo]) async def read_todos(db_info: tuple Depends(get_db)): db, _ db_info return db # 创建新的待办事项 app.post(/todos/, response_modelTodo, status_code201) async def create_todo(todo_in: TodoCreate, db_info: tuple Depends(get_db)): db, id_counter db_info global current_id new_todo Todo( **todo_in.dict(), idcurrent_id, created_atdatetime.utcnow(), updated_atdatetime.utcnow() ) db.append(new_todo) current_id 1 return new_todo # 获取单个待办事项 app.get(/todos/{todo_id}, response_modelTodo) async def read_todo(todo_id: int, db_info: tuple Depends(get_db)): db, _ db_info for todo in db: if todo.id todo_id: return todo raise HTTPException(status_code404, detailTodo not found) # 更新待办事项 app.put(/todos/{todo_id}, response_modelTodo) async def update_todo(todo_id: int, todo_in: TodoCreate, db_info: tuple Depends(get_db)): db, _ db_info for index, todo in enumerate(db): if todo.id todo_id: updated_data todo_in.dict(exclude_unsetTrue) # 只更新提供的字段 updated_todo todo.copy(updateupdated_data) updated_todo.updated_at datetime.utcnow() db[index] updated_todo return updated_todo raise HTTPException(status_code404, detailTodo not found) # 删除待办事项 app.delete(/todos/{todo_id}) async def delete_todo(todo_id: int, db_info: tuple Depends(get_db)): db, _ db_info for index, todo in enumerate(db): if todo.id todo_id: del db[index] return {message: fTodo {todo_id} deleted successfully} raise HTTPException(status_code404, detailTodo not found)5.2 运行与测试确保在项目根目录并激活了虚拟环境。运行服务器uvicorn app.main:app --reload打开http://127.0.0.1:8000/docs。现在你可以在 Swagger UI 中测试完整的 CRUD 操作POST /todos/创建一个新的待办事项。GET /todos/获取所有待办事项列表。GET /todos/{todo_id}根据 ID 获取单个事项。PUT /todos/{todo_id}更新某个事项。DELETE /todos/{todo_id}删除某个事项。所有请求和响应的格式都已在文档中清晰定义你可以直接交互。6. 进阶主题与生产环境准备一个简单的 API 跑起来后我们需要考虑如何将其变得健壮并部署到生产环境。6.1 连接真实数据库以 SQLAlchemy 为例内存数据库只是演示。实际项目需要连接 PostgreSQL、MySQL 等。以下是使用 SQLAlchemy ORM 和异步驱动asyncpg/aiomysql的简要步骤。安装依赖pip install sqlalchemy alembic asyncpg # 或使用 aiomysql 用于 MySQL # pip install sqlalchemy alembic aiomysql配置数据库连接 (app/core/config.py):# app/core/config.py from pydantic import BaseSettings class Settings(BaseSettings): database_url: str postgresqlasyncpg://user:passwordlocalhost/dbname # 例如: postgresqlasyncpg://postgres:passwordlocalhost/todoapp class Config: env_file .env # 从 .env 文件读取配置 settings Settings()创建数据库会话与模型代码较长此处概述使用sqlalchemy.ext.asyncio创建异步引擎和会话工厂。定义 SQLAlchemy 的Base类和Todo表模型。创建一个依赖项在请求开始时获取会话结束时关闭。修改路径操作函数在函数内使用异步会话进行数据库查询await session.execute(...)。6.2 用户认证与授权JWT 示例使用 FastAPI 的OAuth2PasswordBearer和python-jose库实现 JWT 认证。安装依赖pip install python-jose[cryptography] passlib[bcrypt]创建密码哈希工具和令牌工具。定义登录端点验证用户名密码生成 JWT 令牌。创建认证依赖项在需要保护的路径操作中该依赖项会验证请求头中的令牌并返回当前用户。6.3 中间件与 CORSCORS跨源资源共享如果你的前端运行在不同域名下必须配置 CORS。from fastapi.middleware.cors import CORSMiddleware app.add_middleware( CORSMiddleware, allow_origins[http://localhost:3000], # 前端地址 allow_credentialsTrue, allow_methods[*], allow_headers[*], )自定义中间件可以用于记录请求日志、处理异常、添加自定义头等。6.4 部署到生产环境以 Windows 服务器为例网络热词中提到了“部署到 windows 服务器”。这里给出基于uvicorn的部署思路。生产服务器不要使用--reload。使用uvicorn的--workers选项启动多个工作进程或者搭配 Gunicorn在 Unix 上作为进程管理器。在 Windows 上可以考虑使用uvicorn作为服务运行。设置启动命令# 在项目目录下使用 nohup (Linux) 或 start 命令 (Windows) 后台运行 # Windows 示例在命令行或批处理文件中 uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4--host 0.0.0.0让服务器监听所有公共 IP。使用反向代理在生产环境中通常使用 Nginx 或 Apache 作为反向代理处理静态文件、SSL 加密、负载均衡等然后将动态请求转发给 Uvicorn。这能提高安全性和性能。进程管理在 Windows 上可以将 FastAPI 应用注册为 Windows 服务或者使用winsw等工具来管理进程的启动、停止和重启。环境变量务必使用.env文件或系统环境变量来管理数据库密码、密钥等敏感信息不要硬编码在代码中。7. 常见问题与排查思路在实际开发中你可能会遇到一些典型问题。以下是一个快速排查指南。问题现象可能原因解决思路启动报错ModuleNotFoundError1. 未安装依赖。2. 虚拟环境未激活。3. PYTHONPATH 问题。1. 运行pip install -r requirements.txt。2. 激活虚拟环境source venv/bin/activate或venv\Scripts\activate。3. 确保在项目根目录运行或正确设置模块导入路径。访问localhost:8000无响应1. 服务器未启动。2. 端口被占用。3. 防火墙阻止。1. 检查uvicorn进程是否运行。2. 换一个端口如--port 8080。3. 检查防火墙设置。API 文档 (/docs) 无法加载或样式错乱通常是因为网络问题导致无法从 CDN 加载 Swagger UI 的 JS/CSS。1. 使用离线包pip install fastapi[all]并设置app FastAPI(docs_urlNone, redoc_urlNone)然后自行托管文档。2. 检查网络连接。POST 请求报错422 Unprocessable Entity这是最常见的问题之一请求体数据不符合 Pydantic 模型的定义。1.检查 Swagger UI在/docs页面尝试发送请求看错误详情。2.核对字段名和类型确保 JSON 的键名与模型字段名完全一致且值类型匹配如字符串不能传给整型字段。3.检查必填字段模型中没有默认值的字段是必填的。数据库操作报异步错误如sync vs async在异步路径操作函数中使用了同步的数据库驱动或库。确保使用支持异步的数据库驱动如asyncpg,aiomysql和对应的 SQLAlchemy 异步模式。在依赖项和路径操作中统一使用async def和await。uvicorn默认线程数/工作进程数对性能有疑问。uvicorn默认是单进程单线程异步。通过--workers指定进程数多进程模式。线程数通常由 ASGI 服务器内部管理对于 I/O 密集型任务异步本身比多线程更高效。fastapi admin菜单不显示这可能指的是第三方库fastapi-admin问题可能出在路由注册、静态文件配置或权限设置上。1. 确保正确安装并配置了fastapi-admin。2. 检查管理员模型和权限设置是否正确。3. 查看官方文档或项目 Issue 寻找解决方案。8. 最佳实践与工程建议遵循以下建议能让你的 FastAPI 项目更加稳健、可维护。项目结构组织采用模块化设计如本文所示将路由、模型、核心配置、工具函数等分开放置。这在大项目中至关重要。充分利用 Pydantic 模型为输入、输出、数据库模型分别定义不同的 Pydantic 模型即使它们大部分字段相同。这提供了清晰的边界和灵活性。使用Config类中的orm_mode True来兼容从 ORM 对象读取数据。依赖注入的威力不要手动在函数里创建数据库连接或获取用户信息。全部通过Depends()声明。这使得代码易于测试和复用。错误处理除了使用HTTPException可以定义自定义异常处理器app.exception_handler来统一处理特定异常返回结构化的错误响应。日志记录集成 Python 标准库的logging模块记录请求信息、错误详情便于调试和监控。测试FastAPI 提供了TestClient使得编写 API 测试非常容易。为你的核心端点编写单元测试和集成测试。from fastapi.testclient import TestClient from .main import app client TestClient(app) def test_read_root(): response client.get(/) assert response.status_code 200 assert response.json() {message: Hello World}配置管理使用 Pydantic 的BaseSettings从环境变量或.env文件加载配置避免将敏感信息提交到代码仓库。API 版本控制如果 API 需要迭代尽早考虑版本控制策略例如将版本号放在路径中/api/v1/items或使用自定义头信息。FastAPI 以其卓越的性能和开发者体验正在重塑 Python Web API 开发。从简单的类型提示声明到自动文档从清晰的依赖注入到原生的异步支持它极大地提升了开发效率和代码质量。本教程涵盖了从入门到实战的核心路径但 FastAPI 的生态还有很多值得探索的部分如后台任务、WebSocket、GraphQL 集成等。建议你以本篇的 Todo API 项目为起点尝试将其改造为使用真实的数据库如 PostgreSQL并添加用户认证功能。然后阅读官方文档中更深入的主题。记住最好的学习方式就是动手去构建。

相关新闻

从零到一:大模型训练与部署全流程实战指南

从零到一:大模型训练与部署全流程实战指南

最近在尝试将大模型部署到手机端时,发现从零开始理解整个训练流程到最终落地,资料非常零散。预训练、SFT、RLHF、量化、蒸馏……每个环节都有大量细节,网上教程要么只讲理论,要么代码片段不完整,很难串联成一个可实操的…

2026/8/18 8:34:08 阅读更多 →
基于多智能体与RAG的学术政策问答系统:架构、实现与安全实践

基于多智能体与RAG的学术政策问答系统:架构、实现与安全实践

1. 项目概述:当学术政策咨询遇上智能体与RAG 最近在跟几个高校信息中心的朋友聊天,他们都在头疼同一个问题:学校的规章制度、办事流程、学术政策文件多如牛毛,每年更新,别说学生,就连新入职的行政老师都经常…

2026/8/18 8:34:08 阅读更多 →
MQB Evo平台赋能:从国民家轿到高端体验的产品重塑之路

MQB Evo平台赋能:从国民家轿到高端体验的产品重塑之路

1. 项目缘起:当“国民家轿”决定向上走 最近在车圈里,一个话题讨论得挺热乎:如果大众宝来,这个在中国市场卖了快二十年、累计销量超过350万辆的“国民家轿”,决定不再只做那个经济实惠的选项,而是换了个平台…

2026/8/18 8:34:07 阅读更多 →

最新新闻

AI智能体如何学会说“我不知道”:Agentic Abstention技术解析与实践

AI智能体如何学会说“我不知道”:Agentic Abstention技术解析与实践

1. 引言:当AI代理学会说“我不知道” 最近在跟几个做LLM智能体(LLM-powered Autonomous Agents)的朋友聊天,大家不约而同地提到了一个共同的“翻车”现场:你精心设计的智能体,在某个任务上表现优异&#xf…

2026/8/18 12:16:36 阅读更多 →
弱网断网也能装:察元AI文档助手三源回退下载与 sha256 强校验

弱网断网也能装:察元AI文档助手三源回退下载与 sha256 强校验

讲个上个月的事。我在外地出差,酒店网络烂到连图片都刷不动,同行的同事看我演示「察元AI文档助手」自动给公文挑错别字,当场要在自己的笔记本上也装一份。我本来都做好"回北京再装"的准备了,结果一行命令下去&#xff0…

2026/8/18 12:16:36 阅读更多 →
免费 Windows 虚拟显示器:四步装好,凭空多出 8 块 4K 屏幕

免费 Windows 虚拟显示器:四步装好,凭空多出 8 块 4K 屏幕

免费 Windows 虚拟显示器:四步装好,凭空多出 8 块 4K 屏幕 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd 如果你正为"屏幕不够用"发愁&#xf…

2026/8/18 12:16:36 阅读更多 →
Linux下源码编译FFmpeg的完整指南与优化技巧

Linux下源码编译FFmpeg的完整指南与优化技巧

1. 为什么需要从源码编译FFmpeg? 在Linux环境下,大多数发行版都提供了预编译的FFmpeg软件包,但直接使用源码编译安装有几个不可替代的优势。首先,通过源码编译可以获得最新版本的功能支持,官方仓库中的预编译版本往往滞…

2026/8/18 12:16:36 阅读更多 →
装技能等于装加载项:察元AI文档助手双向自启设计拆解

装技能等于装加载项:察元AI文档助手双向自启设计拆解

看到「察元AI文档助手」的安装脚本时,我第一反应是又见缝合怪:一个脚本又要装 WPS 加载项,又要装 MCP 服务,还要往 Claude Code、Cursor 里投技能文件,这不是把三件事搅在一起吗?用了一段时间再回头看&…

2026/8/18 12:16:36 阅读更多 →
LAVE框架:基于潜在视觉证据的视频工具使用智能体规划技术解析

LAVE框架:基于潜在视觉证据的视频工具使用智能体规划技术解析

1. 项目概述:当AI学会“看视频”并“动手”解决问题最近在搞多模态智能体研究的朋友,估计都绕不开一个核心挑战:如何让AI不仅看懂视频里发生了什么,还能像人一样,基于看到的画面信息,规划并执行一系列工具操…

2026/8/18 12:15:36 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →