Python FastAPI 项目脚手架

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

创建 Python FastAPI 分层架构项目脚手架。当用户要求创建新项目、初始化项目、搭建项目结构、new project、scaffold、项目脚手架时触发。支持按前端应用(admin后台、mp小程序、app移动端、web前端)分组 API 和 Schemas,自动注册路由,遵循分层架构最佳实践。支持 PostgreSQL / MySQL / SQLite 数据库,支持 Redis 多数据库(db0~db15),包含完整的安全配置(认证、权限、限流、日志)。

一句话选型结论

按资料字段整理

Python FastAPI 项目脚手架是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_4005c3e1/python-fastapi-scaffold
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_4005c3e1仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791672792
正文体量6.6 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Python FastAPI 项目脚手架当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

6.6 KB
模型实际读到的说明书原文,来自技能仓库

Python FastAPI 项目脚手架

创建符合分层架构的 Python FastAPI 项目,支持多前端应用分组。

参考文档

详细说明请参阅 references/ 目录:

  • 项目结构详解 - 架构设计、目录说明、各层职责
  • API 设计规范 - RESTful 设计、路由规范、状态码
  • 安全指南 - 认证授权、密码安全、限流策略

项目结构

app/
├── __init__.py
├── main.py                 # 应用入口
│
├── api/                    # API 层 - 按前端分组
│   ├── __init__.py         # 路由注册入口
│   ├── admin/              # 后台管理端 API
│   ├── mp/                 # 小程序端 API
│   └── health.py           # 健康检查(不分组)
│
├── schemas/                # 数据验证层 - 按前端分组
│   ├── admin/
│   ├── mp/
│   └── common/
│
├── models/                 # 数据模型层 - 所有前端共享
├── services/               # 业务逻辑层 - 所有前端共享
│
├── core/                   # 核心配置层
│   ├── config.py           # 配置管理
│   ├── deps.py             # 依赖注入
│   ├── security.py         # 密码加密、JWT
│   ├── auth.py             # 认证依赖
│   ├── permissions.py      # 权限控制
│   ├── exceptions.py       # 全局异常处理
│   ├── logging.py          # 日志配置
│   └── middleware/         # 中间件
│       ├── rate_limit.py   # 限流中间件
│       └── request_logging.py  # 请求日志
│
├── db/                     # 数据库层
│   ├── base.py             # SQLAlchemy Base
│   ├── session.py          # 数据库会话管理
│   └── redis_client.py     # Redis 客户端(支持 db0~db15)
│
└── tests/                  # 测试目录
    ├── conftest.py         # 测试配置
    ├── api/                # API 测试
    └── services/           # 业务逻辑测试

数据库支持

数据库 驱动 连接示例
PostgreSQL asyncpg postgresql+asyncpg://user:pass@host:5432/db
MySQL aiomysql mysql+aiomysql://user:pass@host:3306/db
SQLite 内置 sqlite:///./app.db

Redis 多数据库

支持 db0~db15,按用途分库:

数据库 用途
db0 缓存
db1 会话
db2 限流
db3 消息队列
db4 分布式锁

安全配置

功能 文件 说明
JWT 认证 core/security.py Token 生成与验证
用户认证 core/auth.py 获取当前用户依赖
权限控制 core/permissions.py RBAC 角色权限
限流 middleware/rate_limit.py 基于 IP+指纹 的限流
异常处理 core/exceptions.py 全局异常捕获
日志 core/logging.py 请求日志、错误日志

限流策略

IP + 浏览器指纹组合限流

为什么需要浏览器指纹?

如果只用 IP 限流,局域网内的所有用户会共享同一个 IP,导致:
- 一个人请求过多,整个局域网的人都被误封
- 无法区分同一 IP 下的不同客户端

解决方案:

使用 IP + 浏览器指纹 + 路径 作为限流键:

rate_limit:{ip}:{fingerprint}:{path}

浏览器指纹生成:

从请求头中提取特征信息组合生成指纹:
- User-Agent: 浏览器类型、版本、操作系统
- Accept-Language: 语言偏好设置
- Accept-Encoding: 支持的编码方式

相同浏览器 + 相同设置 = 相同指纹
不同浏览器或不同设置 = 不同指纹

效果:
- 局域网内不同用户(不同浏览器)独立计数
- 同一用户在不同设备上独立计数
- 避免误封正常用户

使用方式

步骤 1:询问用户需求

创建前确认:
- 项目名称和路径
- 需要哪些前端应用(admin/mp/app/web)
- 使用哪种数据库(PostgreSQL/MySQL/SQLite)
- 是否需要 Redis

步骤 2:复制模板

cp -r assets/templates/app <目标路径>/app
cp -r assets/templates/tests <目标路径>/tests
cp assets/templates/requirements.txt <目标路径>/
cp assets/templates/.env.example <目标路径>/.env
cp assets/templates/pyproject.toml <目标路径>/
cp assets/templates/.gitignore <目标路径>/

步骤 3:按需调整

根据用户选择:
- 删除不需要的前端目录(如不需要 mp 则删除 api/mp/、schemas/mp/)
- 修改 .env 中的 DATABASE_URL
- 如不需要 Redis,可删除 db/redis_client.py

步骤 4:更新路由注册

修改 api/__init__.py,只包含用户需要的应用。

新增路由流程

  1. 在对应目录创建 xxx.py,定义 router = APIRouter()
  2. 在该目录的 __init__.py 中 import 并 include
  3. 完成,无需修改其他文件

认证使用示例

from fastapi import APIRouter, Depends
from app.core.auth import get_current_active_user
from app.core.permissions import check_permission, Permission
from app.models.user import User

router = APIRouter()

@router.get("/protected")
def protected_endpoint(current_user: User = Depends(get_current_active_user)):
    return {"user": current_user.username}

@router.get("/admin-only")
def admin_only(current_user: User = Depends(check_permission(Permission.SYSTEM_WRITE))):
    return {"message": "Admin access granted"}

Redis 使用示例

from app.db import redis_client

# 缓存
redis_client.cache.set("key", "value", ex=3600)
redis_client.cache.get("key")

# 会话
redis_client.session.set("session:123", "user_data")

# 限流
redis_client.rate_limit.incr("rate:user:123")

# 分布式锁
lock = redis_client.lock.lock("my_lock", timeout=10)

运行测试

# 安装测试依赖
pip install pytest pytest-cov

# 运行测试
pytest

# 运行测试并生成覆盖率报告
pytest --cov=app --cov-report=html

常见问题

5 问
答案由本站依据条目字段整理
Python FastAPI 项目脚手架怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_4005c3e1/python-fastapi-scaffold。安装方式为未标注。装完刷新技能列表或重开客户端。

Python FastAPI 项目脚手架支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

Python FastAPI 项目脚手架权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

Python FastAPI 项目脚手架收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

Python FastAPI 项目脚手架用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。