常见问题

如何让输入框在提交后不消失,并可以持续性地输入

PyWebIO 的设计就是输入表单在成功提交后就销毁,因为 PyWebIO 的输入是阻塞式的,一旦提交表单,输入函数就返回了,此时表单还留在界面上是没有意义的。如果想实现持续性的输入,可以将接收输入以及后续操作放到一个 while 循环中。

为什么 put_buttons() 的回调不起作用

一般情况下,在Server模式下,任务函数一旦返回(或在Script模式下,脚本运行结束),会话就结束了,此时事件回调也将不起作用,可以在任务函数(或脚本)末尾处使用 pywebio.session.hold() 函数来将会话保持,这样在用户关闭浏览器页面前,事件回调将一直可用。 参见 Server模式与Script模式

为什么 put_file() 无法下载文件

原因同上。 put_file() 的文件链接被点击后,也是需要和服务端通信获取文件数据的,所以会话关闭后下载链接会不可用。可以在任务函数末尾处使用 pywebio.session.hold() 函数来将会话保持。