Starfyre 项目教程
项目介绍
Starfyre 是一个基于 WASM 的 SSR(服务器端渲染)Python Web 框架,用于前端应用程序。它允许你使用纯 Python 构建响应式前端,通过定义一组可观察对象和响应式函数,Starfyre 可以自动处理其余部分。Starfyre 基于 Pyscript 进行客户端功能实现,并使用 pyxide 概念来结构化代码,其中每个组件都是一个容器,可以包含其他组件或 HTML 元素。
项目快速启动
安装
首先,通过 pip 安装 Starfyre:
pip install starfyre
创建新项目
使用以下命令创建一个新项目:
starfyre --create="my-app"
这将使用 create-starfyre-app
模板创建一个新项目。
运行项目
进入项目目录并启动服务:
cd my-app
python -m starfyre --serve
应用案例和最佳实践
简单组件示例
以下是一个简单的 Starfyre 组件示例:
from starfyre import Component, html
class MyComponent(Component):
def __init__(self):
super().__init__()
self.message = "Hello World"
def handle_click(self):
self.message = "Goodbye World"
def render(self):
return html.div(onclick=self.handle_click, children=[self.message])
app = MyComponent()
app.mount('#app')
路由示例
Starfyre 支持基于文件的路由。以下是一个简单的路由示例:
my-app/
├── pages/
│ ├── __init__.fyre
│ ├── about.fyre
│ └── nav.fyre
典型生态项目
IDE/编辑器插件
- vim-starfyre: 一个 Vim 插件,用于语法高亮 Starfyre 文件。
- vscode-starfyre: 一个 VSCode 扩展,用于语法高亮 Starfyre 文件。
依赖管理
你需要在项目根目录中有一个 starfyre_config.toml
文件来指定项目的依赖项。以下是一个示例:
[pyxide_packages]
# 客户端包
[server_packages]
# 服务器端包
[js_modules]
is_odd = "https://cdn.jsdelivr.net/npm/is-odd@3.0.1/+esm"
Fireworks = "https://cdn.jsdelivr.net/npm/fireworks-js@2.10.7/+esm"
你可以使用以下命令添加依赖项:
starfyre --add-pyxide-package="package-name"
starfyre --add-server-package="package-name"
starfyre --add-js-module="module-name" --as="alias"
通过以上步骤,你可以快速启动并使用 Starfyre 构建响应式前端应用程序。