12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- """
- `pywebio.session.set_env()` demo
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- """
- from pywebio import start_server
- from pywebio.input import *
- from pywebio.output import *
- from pywebio.session import *
- import datetime
- import asyncio
- async def main():
- """`pywebio.session.set_env()` demo"""
- set_scope('time')
- put_markdown('> 可用于观察 `output_animation` 项的动画效果')
- put_markdown('---')
- async def bg_task():
- while 1:
- with use_scope('time', clear=True):
- put_text('当前时间:', datetime.datetime.now())
- await asyncio.sleep(1)
- run_async(bg_task())
- put_buttons(['输出文本'], [lambda: put_text(datetime.datetime.now())])
- put_markdown('> 可用于观察 `auto_scroll_bottom` 项的自动滚动效果')
- put_markdown('---')
- put_text('Some text.\n' * 10)
- state = {
- 'title': 'PyWebIO set_env() Demo',
- 'output_animation': True,
- 'auto_scroll_bottom': False,
- }
- set_env(**state)
- while 1:
- curr_state_info = ', '.join('%s=%r' % (k, v) for k, v in state.items())
- key = await actions('选择要更改的会话环境设置项', list(state.keys()), help_text='当前状态:' + curr_state_info)
- if key == 'title':
- state['title'] = await input('请输入标题', value=state['title'])
- set_env(title=state['title'])
- toast('已将标题设置为%r' % state['title'])
- elif key in state:
- state[key] = not (state[key])
- set_env(**{key: state[key]})
- toast('已将`%s`设置为%r' % (key, state[key]))
- if __name__ == '__main__':
- start_server(main, debug=True, port=8080, cdn=False)
|