带有 Flask 后端的 Svelte(kit) - 一些问题

Svelte(kit) with Flask Backend - Some Questions

我目前正在潜入 Svelte(kit) 的世界,我正处于需要一些帮助来做决定的时候。

我将使用 Flask 作为后端,所以我尝试从 Flask 提供 Svelte(就像在 this Git 中一样),一开始,它看起来不错。

但我更喜欢 Sveltekit 而不是 Svelte,所以我尝试以与 Flask 相同的方式提供 Sveltekit,但页面上只有 "%svelte.head% %svelte.body%" 文本。我需要改变什么?

为什么要从 Flask 而不是 Svelte 中提供 Sveltekit?例如,与 Svelt 相比,我更喜欢 Sveltekit 中的路由。但是我看不到要使用端点的点,而我可以直接从 .svelte 页面获取 Flask API,而不是先获取到端点再获取到 Flask API。还是我的想法有什么问题?

苗条 vs svelte-kit

你好像忽略了苗条和svelte-kit的区别。
Svelte 本身使得编写可重用的快速和小型组件变得容易。这些独立于任何服务器组件。 Svelte-kit 以此为基础,创建一个完整的网络框架,具有潜在的服务器组件。
实际上,这意味着它提供了多个适配器来将使用它构建的 Web 应用程序部署到不同的地方,例如 netlify,作为一个快速应用程序,或者只是作为一组静态 html 文件,用于 github/gitlab 页面.
对于所有非静态解决方案的适配器,使用 svelte kit 还添加了具有服务器端渲染的选项,这通常可以带来更好的用户体验。

Svelte-kit 端点

你关于端点的问题与此有关。在 svelte 套件中制作这些端点会有所收获的原因有两个:
在您的具体情况下,javascript/nodejs 通常比 python、
快 更重要的是,如果端点是用 svelte kit 制作的,它们可以用作服务器端渲染过程的一部分。
由于一切都发生在同一台机器上,这可以大大加快整个过程。
还有一个方面是,使用不同语言的服务进行交互可能会带来很大的认知开销,并且您正在传输的 dto 可能难以管理。

方法

如果您现有的服务器组件很小,或者仍在构建过程中,完全切换到 svelte-kit 可能是一个不错的选择,以获得加速,只使用一种语言的简单性,以及 svelte-kit 为您提供的许多便利功能。对于该选项,您必须更加熟悉 svelte 和 svelte-kit。
这是 svelte-kit 在 endpoints as well as hooks 上的一些文档,对于管理用户状态非常方便。
端点相当简单,所以只要您很好地掌握了要在其中实现的目标,以及一些 javascript/nodejs 知识,应该不会太难。

如果您在 python 中的现有服务器组件无法为 svelte-kit 应用程序重写,因为某些依赖项不可用,或者因为它太大了,您仍然可以选择部署svelte-kit 应用作为静态页面,然后直接请求基于 python 的服务。

还可以选择使用 svelte-kit 端点作为代理来向您的 python 服务发出请求。这种策略更适合微服务架构,或者如果您只是为现有的后端应用程序制作一个新的前端。尽管如此,在合适的情况下还是一个不错的选择。