这份文档似乎是一份 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 的最佳实践。
请注意,这只是一个概述,文档中还有更多细节和示例。