这份文档似乎是一份 FastHTML 库的用户指南,它将 Starlette、Uvicorn、HTMX 和 fastcore 的 FT “快速标签” 结合起来,用于创建服务器渲染的超媒体应用程序。以下是文档的主要部分和内容概述:
快速入门
- 安装 FastHTML
- 创建一个最小应用程序
- 使用
serve()运行应用程序 - 使用
Titled包裹标题 - 使用
Script包裹 JavaScript 代码 - 使用
DEBUG模式进行调试
路由
- 使用
rt()装饰器定义路由 - 使用变量部分在 URL 中添加变量
- 使用 HTTP 方法处理不同类型的请求
CSS 和静态文件
- 使用 Pico CSS 和 Sakura CSS 微框架
- 使用
Style包裹内联样式 - 更改默认静态文件位置
- 使用
FileResponse服务器静态文件
渲染 Markdown 和代码高亮
- 使用
MarkdownJS和HighlightJS渲染 Markdown 和代码
定义新的ft组件 - 使用函数定义组件
- 使用
*args和**kwargs定义可嵌套的组件 - 使用数据类定义更复杂的组件
测试视图
- 使用 Starlette 测试客户端测试视图
表单
- 使用数据类验证表单数据
- 使用
Form组件创建表单 - 使用
fill_form填充表单 - 将表单与视图结合使用
字符串和转换顺序
- 使用
__ft__方法渲染组件 - 使用
str()和NotStr()转换字符串
自定义异常处理程序
- 使用
exception_handlers字典自定义异常处理程序
Cookies 和会话
- 使用
cookie()函数设置 cookie - 使用
session参数存储会话数据
Toasts (消息)
- 使用
setup_toasts()和add_toast()添加消息 - 消息类型:info, success, warning, error
身份验证和授权
- 使用 Beforeware 处理身份验证和授权
- 使用
skip参数允许访问特定路由
服务器发送事件 (SSE)
- 使用
EventStream和sse_message创建 SSE - 使用 HTMX SSE 扩展
WebSockets
- 使用
app.ws装饰器添加 WebSocket 支持 - 使用
on_connect和on_disconnect处理连接和断开连接事件
文件上传
- 使用
UploadFile处理文件上传 - 支持单个和多个文件上传
HTMX 参考
- HTMX 核心属性、附加属性、CSS 类、请求/响应头、事件、扩展、JavaScript API 和配置选项
Surreal 和 CSS Scope Inline
- Surreal 是一个小的 jQuery 替代品,提供了
me和any函数,用于实现内联行为局部性。 - CSS Scope Inline 允许在
<style>标签中使用me选择器,通过MutationObserver监听 DOM。
Starlette 快速指南
- Starlette 是 FastHTML 的底层 ASGI 框架,提供了一些有用的功能,例如获取上传文件内容、返回自定义响应、请求上下文、变量存储、异常处理、后台任务和中间件。
API 列表
- 提供了 FastHTML 库中所有函数和方法的详细文档。
示例应用程序
- 一个使用 FastHTML 创建的 Todo 列表应用程序的示例,展示了如何使用 FastHTML 和 HTMX 的最佳实践。
请注意,这只是一个概述,文档中还有更多细节和示例。
