浏览代码

demo: add `set_env()` demo

wangweimin 4 年之前
父节点
当前提交
aaf98711ac
共有 2 个文件被更改,包括 62 次插入0 次删除
  1. 56 0
      demos/set_env_demo.py
  2. 6 0
      docs/guide.rst

+ 56 - 0
demos/set_env_demo.py

@@ -0,0 +1,56 @@
+"""
+`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():
+    put_buttons(['返回底部'], [lambda: scroll_to('ROOT', Position.BOTTOM)])
+    put_markdown('---')
+
+    set_scope('time')
+    put_markdown('---')
+
+    async def bg_task():
+        count = 5
+        while 1:
+            with use_scope('time', clear=True):
+                put_text('当前时间:', datetime.datetime.now())
+            put_text(count)
+            count += 1
+
+            await asyncio.sleep(1)
+
+    put_text('\n'.join(str(i) for i in range(5)))
+
+    run_async(bg_task())
+
+    state = {
+        'title': 'PyWebIO set_env() Demo',
+        'output_animation': True,
+        'auto_scroll_bottom': True,
+        'output_fixed_height': True,
+    }
+    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('请输入标题')
+            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)

+ 6 - 0
docs/guide.rst

@@ -482,6 +482,12 @@ PyWebIO支持两种外观:可变高度的输出区(默认)和固定高度的
 在 ``ROOT`` 域进行输出时,PyWebIO默认在输出完毕后自动将页面滚动到页面最下方;在调用输入函数时,也会将页面滚动到表单处。
 通过调用 `set_env(auto_scroll_bottom=False) <pywebio.session.set_env>` 来关闭自动滚动。
 
+**输出动画**
+
+PyWebIO在输出内容时默认会提供内容的显示动画(淡入效果),可使用 `set_env(output_animation=False) <pywebio.session.set_env>` 来关闭动画。
+
+不同页面环境设置的效果可查看 :demo_host:`set_env Demo </?pywebio_api=set_env>`
+
 布局
 ^^^^^^^^^^^^^^
 一般情况下,使用上文介绍的各种输出函数足以完成各种内容的展示,但直接调用输出函数产生的输出之间都是竖直排列的,如果想实现更复杂的布局(比如在页