FastHTML 愿景

毫不妥协

FastHTML 是一个通用的全栈 Web 编程系统,与 Django、NextJS 和 Ruby on Rails 类似。我们的愿景是让它成为创建快速原型的最简单方式,同时也是创建可扩展、功能强大、内容丰富的应用程序的最简单方式。

拥有一个既能向下扩展又能向上扩展的系统非常重要。这是因为创建一个大型复杂应用程序的最佳方法是先创建一个小型简单的应用程序,然后逐步增加功能。如果我们不能让创建小型简单的应用程序变得容易,那么就会有更少的人开始,更少的想法得到尝试。

两类工具

大多数让入门变得容易的软件开发平台,都难以在规模和复杂性上进行扩展。结果,开发领域被分割为“领域专家工具”(如 Streamlit、Gradio 和 Wordpress)与“专业程序员工具”(如 React 和 Django)。

这意味着选择其中一种领域专家工具是一种妥协:如果你构建的应用非常成功,那么在某个时候你将不得不推倒重来——甚至可能需要使用一种完全不同的编程语言。领域专家工具通常使用特定于单个工具的非常高级别的抽象,这也意味着需要学习一套新的基础知识。而专业程序员工具则增加了不必要的复杂性,减慢了学习和开发速度,并使维护变得更加困难。

向下扩展

Web 开发一个极简的 FastHTML 应用确实非常精简。

FastHTML 通过选择最广泛用于“完成任务”的语言——Python,来实现向下扩展。然后,它摒弃了所有使 Python Web 编程复杂化的东西。没有奇怪模板语言的模板。没有多文件夹、多文件的项目骨架。没有复杂的类型系统。没有独立的前端 JavaScript。没有单一框架的响应式抽象。没有构建步骤。没有摇树优化(tree shaking)。没有废话。

一个 FastHTML 应用程序可以从一个单一的 Python 文件开始。事实上,它甚至可以一直保持为单个 Python 文件!只有当你自己认为将代码拆分到多个文件中有助于构建或维护软件时,你才需要这样做。

FastHTML 应用程序不需要学习和安装独立的 CSS 和 JavaScript 框架。你可以通过 pip 安装一个完整的样式库,比如一个 UI 工具包或模板,并完全在 Python 中使用它。我们正在为 DaisyUI、Bootstrap、Shoelace、Flowbite 等构建 FastHTML 库。你可以使用这些库,也可以创建自己的库,并通过 Python 对它们进行定制。你还可以通过 pip 安装由 JavaScript 和 Python 库提供的额外功能,所有这些都可以完全由 Python 控制。

向上扩展

FastHTML 通过利用 Web 的基础技术来实现向上扩展。因为 FastHTML 应用程序直接使用 HTTP、HTML、JavaScript 和 CSS,所以你的应用程序与 Web 的强大功能之间没有任何障碍。FastHTML 提供了强大而简单的工具,用于函数级和处理程序级的缓存、异步、线程、HTML 片段等。

最重要的是,你从向下扩展开始时所用的基础知识,与向上扩展时所用的完全相同!相同的语言、相同的库、相同的抽象。随着你在 Web 编程旅程中不断前行,你所有的新技能都会变得越来越强大!


© 2024 年起 AnswerDotAI, Inc