FastUI是一种全新的构建Web应用程序用户界面的方式,它是由声明式的Python代码定义的。它旨在为Python开发人员和前端开发人员提供一种简单而强大的工具,以便他们能够更高效地构建响应式的Web应用程序界面,而无需处理繁杂的JavaScript代码或底层的技术细节。
FastUI由以下四个部分组成:
在实际的应用中,FastUI可以帮助开发者构建出响应式的Web应用程序界面。下面是一个简单的FastAPI应用程序示例,使用FastUI展示一些用户配置:
from datetime import date
from fastapi import FastAPI, HTTPException
from fastapi.responses import HTMLResponse
from fastui import FastUI, AnyComponent, prebuilt_html, components as c
from fastui.components.display import DisplayMode, DisplayLookup
from fastui.events import GoToEvent, BackEvent
from pydantic import BaseModel, Field
# 创建FastAPI应用
app = FastAPI()
# 定义用户数据模型
class User(BaseModel):
id: int
name: str
dob: date = Field(title='出生日期')
# 定义一些用户
users = [
User(id=1, name='John', dob=date(1990, 1, 1)),
User(id=2, name='Jack', dob=date(1991, 1, 1)),
User(id=3, name='Jill', dob=date(1992, 1, 1)),
User(id=4, name='Jane', dob=date(1993, 1, 1)),
]
@app.get("/api/", response_model=FastUI, response_model_exclude_none=True)
def users_table() -> list[AnyComponent]:
"""
显示四位用户的表格,'/api' 是前端连接获取组件渲染的端点,当用户访问'/'时使用。
"""
return [
c.Page(
components=[
c.Heading(text='用户', level=2),
c.Table(
data=users,
columns=[
DisplayLookup(field='name', on_click=GoToEvent(url='/user/{id}/')),
DisplayLookup(field='dob', mode=DisplayMode.date),
],
),
]
),
]
FastUI已经定义了丰富的组件集,所有组件都可以在演示应用程序中找到。这些组件包括了各种常用的用户界面元素,以及数据展示和交互等组件,使得开发者能够更加方便地构建出完整且美观的Web应用程序界面。
FastUI是RESTful原则的实现,它倡导前端不需要了解应用程序的细节,而只需要提供所有构建界面所需的组件,让后端告诉前端如何处理这些组件。这种构建应用程序的方式有许多重要的优势,例如只需要在一个地方编写代码来构建新功能、前后端的部署可以完全解耦等。 FastUI的原则不应该局限于Python和React应用程序,只要遵循相同的约定模式和编码进行通信,能够在实现此模式的任何前端和后端中使用。这意味着可以使用其他JS框架、边缘服务器等实现不同的前端,并且可以在其他语言中实现FastUI的组件模型。
总之,FastUI为开发者提供了一种全新而强大的方式来构建Web应用程序的用户界面,它简化了开发流程,分离了前后端的开发,提高了开发效率和灵活性,是一个非常值得关注和尝试的工具和技术。
https://fastui-demo.onrender.com/ https://github.com/pydantic/FastUI