dazzler
v0.10.0
Dazzler adalah kerangka kerja UI hibrida untuk Python untuk membuat aplikasi desktop atau web.
Dibangun dengan aiohttp, bereaksi dan elektron.
Instal With Pip: $ pip install dazzler
QuickStart dengan template github
Buat halaman dengan tata letak dan tetapkan binding untuk menyimpan & memuat nama pengunjung dengan sistem sesi. Tombol untuk menyimpan nama pengunjung dinonaktifkan jika tidak ada nilai input melalui tie & transform.
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 ()Dokumentasi lengkap di -host di ReadThedocs.
Dapatkan bantuan untuk alat baris perintah: $ dazzler --help