异步Web框架
项目描述
Dazzler
Dazzler是一个用于创建桌面或Web应用程序的Python混合UI框架。
安装
使用pip安装: $ pip install dazzler
功能
- 基于WebSocket的快速通信,一次向成千上万的连接客户端实时传输更新。
- 使用Electron构建桌面应用程序。
- 通过中间件支持第三方集成。
- 会话和身份验证系统。
- 将API绑定到客户端以执行更新。
快速入门
使用GitHub模板快速入门
示例
创建一个具有布局的页面,并将绑定分配给通过会话系统保存和加载访问者姓名。如果未通过绑定和转换提供输入值,则保存访问者姓名的按钮将被禁用。
from dazzler import Dazzler
from dazzler.system import Page, BindingContext, CallContext, transforms as t
from dazzler.components import core
app = Dazzler(__name__)
page = Page(
__name__,
core.Container([
core.Html('H2', 'My dazzler page'),
core.Container('Please enter a name', identity='visitor-name'),
core.Input(value='', identity='input'),
core.Button('Save name', identity='save-btn', disabled=True),
], identity='layout', id='layout'),
title='My Page',
url='/'
)
# UI updates via tie & transforms
page.tie('value@input', 'disabled@save-btn').transform(
t.Length().t(t.Lesser(1))
)
# Bindings executes on the server via websockets.
@page.bind('clicks@save-btn')
async def on_click(context: BindingContext):
# Save the visitor name via session system
name = await context.get_aspect('input', 'value')
await context.session.set('visitor', name)
await context.set_aspect(
'visitor-name', children=f'Saved {name}'
)
# Aspects defined on the layout trigger on initial render and
# allows to insert initial data.
# `call` executes via regular requests.
@page.call('id@layout')
async def on_layout(context: CallContext):
visitor = await context.session.get('visitor')
if visitor:
await context.set_aspect(
'visitor-name', children=f'Welcome back {visitor}!'
)
app.add_page(page)
if __name__ == '__main__':
app.start()
文档
完整文档托管在readthedocs。
获取命令行工具的帮助: $ dazzler --help
项目详情
下载文件
下载您平台对应的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。
源代码分发
本发行版没有提供源代码分发文件。请参阅生成分发存档教程。
构建分发
dazzler-0.10.0-py3-none-any.whl (10.6 MB 查看哈希值)