将 Flet 应用程序发布到 Web
Flet 允许将您的应用程序作为 静态 或 动态 网站发布。
静态网站 - 内容不变, exactly delivered as stored。Python 代码在 web 浏览器中运行。
动态网站 - 内容是动态生成的,每个用户都有不同的内容。Python 代码在服务器上运行。
下面是 Flet 应用程序作为静态网站和动态网站运行的比较表:
静态网站 | 动态网站 | |
---|---|---|
加载时间 | ⬇️ 较慢 - Python 运行时(Pyodide)和应用程序的 Python 代码以及所有依赖项必须加载到浏览器中。Pyodide 初始化也需要时间。 | ✅ 较快 - 应用程序保持在服务器上运行。 |
Python 兼容性 | ⬇️ 并不是所有使用 native Python 的程序都可以使用 Pyodide 运行 Pyodide 的限制 | ✅ 任意 Python 包都可以使用。 |
响应性 | ✅ 零 延迟 - 用户生成的事件(点击、文本字段更改、拖拽)和页面更新之间。 | ⬇️ 非零延迟 - 用户生成的事件通过 WebSockets 与服务器通信。UI 更新也通过服务器通信回来。 |
性能 | ⬇️ 较慢 - Pyodide 目前比 native Python 慢 3-5 倍,因为 WASM | ✅ 较快 - 代码在服务器上由 native Python 运行。 |
代码保护 | ⬇️ 低 - 应用程序的代码加载到 web 浏览器中,可以被用户检查。 | ✅ 高 - 应用程序在服务器上运行。 |
托管 | ✅ 便宜/免费 - 服务器上不需要运行代码,因此应用程序可以托管在任何地方:GitHub Pages、Cloudflare Pages、Replit、Vercel 或自己的 VPS。 | ⬇️ 需要付费 - 应用程序需要 Python 代码在服务器上运行,并通过 WebSockets 与 web 浏览器通信。 |