SuperAPI AI 工具集

fasthtml

编程与开发

查看项目

更新于 11-10 16:25

技能介绍

用途

本技能用于在开发 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 交互、响应处理(片段与整页、重定向、自定义响应)以及项目结构组织等开发、重构与审查任务。

限制

资料未提供该技能的安装方式、收费模式、支持平台或效果保证等信息,暂未提供。