用途
本技能用于在开发 FastHTML 应用时,按照 FastHTML 官方文档、源码和示例中的当前惯用模式来构建、重构和审查代码。它明确要求遵循 FastHTML 自身的约定,而不是 FastAPI、Django 或 SPA 的约定,并强调保持代码精简、HTML 优先、以函数签名为驱动。
主要能力
技能围绕 FastHTML 的若干核心实践给出规则与建议:
- 起步约定:优先匹配仓库现有风格;默认使用
from fasthtml.common import *(除非仓库已使用显式导入);默认使用app, rt = fast_app()与@rt处理函数(除非仓库已使用FastHTML()或动词专用装饰器);优先用index()处理/,其余用函数名路由,并使用路由函数引用而非硬编码 URL;路由处理函数保持为带准确标注的普通函数,因为 FastHTML 会在运行时检查签名。 - 默认构建模式:给出一个标准形态示例,包含
fast_app()、@rt装饰的index()与save(name: str),以及serve()。 - 路由规则:优先使用不带路径参数的
@rt,函数名即路由,index映射到/;若需在同一路径上使用动词专用处理函数,可用@rt("/path") def get(...)、@rt("/path") def post(...)或@app.get(...)、@app.post(...);不要假设裸@rt加名为get或post的函数会生成方法专用路由;读取用 GET、变更用 POST,旧示例中的 PUT/DELETE 在编辑现有代码时遵循,但新代码默认 GET/POST;内部 HTMX 流程优先使用查询参数;在href、action、hx_get、hx_post中使用路由函数对象,需要参数时用.to(...);不要硬编码可表达为handler或handler.to(...)的 URL;使用APIRouter时避免把处理函数命名为get、post、put等。 - 处理函数与类型规则:为每个期望 FastHTML 绑定的用户参数添加标注;缺少标注视为 bug,除非参数是
req、request、sess、session、htmx、app、auth、state、data、body等特殊名;结构化表单体使用 dataclass、fastlite 生成的 dataclass/flexiclass、TypedDict或小型自定义类;重复输入用list[T]而非裸list;表单字段名与处理函数参数名或结构化体字段名保持一致;注意dict捕获原始 body 数据,而TypedDict与带类型类会触发转换。涉及路由签名、表单绑定、查询参数、cookie、header、dataclass、TypedDict或 router 路由函数时,需阅读handlers-and-typing.md。 - 响应规则:普通 HTML 流程返回
FT对象或其元组;需要精确响应控制时直接返回 Starlette 响应对象;重定向在 HTMX 与非 HTMX 请求下都需生效时优先用Redirect(...);仅当仓库有意如此或响应语义需保持纯 Starlette 时用RedirectResponse(...);需要页面标题加容器化 body 时用Titled(...)。涉及片段与整页、重定向、header 或自定义响应行为时,需阅读response-patterns.md。 - 应用结构规则:在复杂度需要拆分前保持应用扁平;先用小型辅助函数处理重复 UI 片段;仅当直接渲染对象明显有用时才给领域对象添加
__ft__方法;使用 fastlite 时优先db.create(MyRowClass)而非手动建表;除非需要不同 body 结构,否则让Titled(...)处理页面容器;优先使用 Pico 默认样式,仅当默认 HTML 语义不足时添加额外 CSS;使用现代 HTMX 事件属性如hx_on__after_request。项目形态、fastlite 用法、渲染辅助与当前最佳实践见app-patterns.md。 - 来源选择:官方最佳实践文档与旧示例代码冲突时优先前者;框架整体行为参考官方简明指南与
llms-ctx.txt;应用形态与组合模式参考官方示例仓库;行为依赖运行时绑定细节时参考库源码;重定向或渲染行为不明确时参考响应文档或core.py。具体文档、仓库与示例文件见official-sources.md。
使用方式
该技能以规则与参考文档的形式提供指导。使用时按任务类型查阅对应参考文件:处理函数与类型相关任务查阅 handlers-and-typing.md;响应模式相关任务查阅 response-patterns.md;应用结构相关任务查阅 app-patterns.md;需要确认官方来源时查阅 official-sources.md。
适用场景
适用于在 FastHTML 项目中进行路由设计、表单绑定、查询参数与 cookie/header 处理、HTMX 交互、响应处理(片段与整页、重定向、自定义响应)以及项目结构组织等开发、重构与审查任务。
限制
资料未提供该技能的安装方式、收费模式、支持平台或效果保证等信息,暂未提供。