快速HTML

创建HTML应用的最快、最强大方式

欢迎阅读官方的FastHTML文档。

FastHTML 是一个用于快速、可扩展的网络应用程序的新一代网络框架,代码简洁紧凑。它的设计目标是:

FastHTML 应用程序只是 Python 代码,因此您可以使用 Python 语言和生态系统的全部功能来使用 FastHTML。FastHTML 的功能与 HTML 和 HTTP 直接 1:1 对应,但允许使用良好的软件工程实践将它们封装起来——因此您需要了解这些基础知识才能充分使用这个库。要了解这个是如何以及为什么工作的,请首先阅读这个: about.fastht.ml

安装

由于 fasthtml 是一个 Python 库,您可以通过以下方式安装它:

pip install python-fasthtml

在不久的将来,我们希望添加可以通过 pip 安装的组件库。

用法

对于一个最小化的应用程序,创建一个文件“main.py”,如下:

main.py
from fasthtml.common import *

app,rt = fast_app()

@rt('/')
def get(): return Div(P('Hello World!'), hx_get="/change")

serve()

运行应用程序使用 python main.py 会打印出一个指向您运行的应用程序的链接: http://localhost:5001。在浏览器中访问该链接,您应该会看到一页显示文本“Hello World!”的页面!恭喜您,您刚刚创建了第一个 FastHTML 应用程序!

由于HTMX,添加交互性非常简单。修改文件以添加此功能:

main.py
@rt('/change')
def get(): return P('Nice to be here!')

您现在有一个可点击的元素,点击时会更改文本。当点击此链接时,服务器将响应一个“HTML片段”——也就是说,只是一小段将插入到现有页面中的HTML。在这种情况下,返回的元素将用第二条路由返回的新版本替换原始的P元素(因为这是HTMX的默认行为)。

这种“基于超媒体”的网页开发方法是构建网页应用的强大方式。

从AI获取帮助

因为FastHTML比大多数LLM更新,所以像Cursor、ChatGPT、Claude和Copilot这样的AI系统不会提供关于它的有用答案。为了解决这个问题,我们提供了一本友好的LLM指南,教他们如何使用FastHTML。要使用它,请添加这个链接供您的AI助手使用:

此示例采用基于Anthropic建议的格式,用于Claude Projects。这项工作非常成功,以至于我们实际上发现Claude能够提供比我们自己的文档更好的信息!例如,请阅读这个注释的Claude聊天,以获取一些很棒的入门信息,完全来自于使用上述文本文件作为上下文的项目。

如果您使用光标,输入 @doc 然后选择 “添加新文档”,并使用上面的 /llms-ctx.txt 链接。上下文文件是自动生成的,来自我们的 llms.txt (我们提供的适合AI的信息标准)——您可以根据需要生成适合其他模型的替代版本。

下一步

从官方来源开始,了解更多关于FastHTML的信息:

  • 关于: 了解 FastHTML 背后的核心思想
  • Documentation: 通过示例学习如何编写FastHTML代码
  • Idiomatic app:详细注释的源代码,逐步讲解一个完整的应用程序,包括自定义身份验证、JS库连接和数据库使用。

我们还有一个1小时的入门视频:

FastHTML 的功能广泛且持续增长,并不是所有的特性和模式都已经被文档化。请准备投入时间来学习和修改源代码,比如主 FastHTML 仓库的笔记本和官方 FastHTML 示例仓库:

然后探索快速HTML教程、小而不断增长的第三方生态系统、笔记本、库和组件:

最后,加入FastHTML社区以提问、分享您的工作,并向他人学习: