PyWebIO v0.3.0 使用手册
注意事项 PyWebIO 静态资源的托管 在开发阶段,使用后端框架提供的静态文件服务对于开发和调试都十分方便,上文的与 Web 框架集成的示例 代码也都是使用了后端框架提供的静态文件服务。但出于性能考虑,托管静态文件最好的方式是使用 反向代 理 (比如 nginx ) 或者 CDN 服务。 前端页面和后端接口的路径约定 PyWebIO 默认通过当前页面的同级的 ./io API 与后端进行通讯。 还提供了基于协程的会话。基于协程的会话接受一个协程作为任务函数。 基于线程的会话为单线程模型,所有会话都运行在一个线程内。对于 IO 密集型的任务,协程比线程有更少 的资源占用同时又拥有媲美于线程的性能。 要使用基于协程的会话,只需要在start_server() 中传入使用 async 声明的协程函数即可: from pywebio.input import * from pywebio.output 时,其他所有新的点击事件都将被排队等待当前点击事件时运行完成。不开启 serial_mode 时,ThreadBasedSession 在新线程中执行回调函数。所以如果回 调函数运行时间很短,可以关闭 serial_mode 来提高性能。 使用示例: from functools import partial def edit_row(choice, id): put_text("You click %s button with0 码力 | 70 页 | 1.41 MB | 1 年前3PyWebIO v1.0.3 使用手册
注意事项 PyWebIO静态资源的托管 在开发阶段,使用后端框架提供的静态文件服务对于开发和调试都十分方便, 上文的与Web框架集成的示例代码也都是使用了后端框架提供的静态文件服 务。 但出于性能考虑,托管静态文件最好的方式是使用 反向代理 [https://en.wikipedia.org/wiki/Reverse_proxy] (比如 nginx [https://nginx.org/] PyWebIO还提供了基于协程的会话。基于协程的会话接受协程函数作为任务函 数。 基于协程的会话为单线程模型,所有会话都运行在一个线程内。对于IO密集型 的任务,协程比线程占用更少的资源同时又拥有媲美于线程的性能。 另外, 协程的上下文切换具有可预测性,能够减少程序同步与加锁的需要,可以有效 避免大多数临界区问题。 使用协程会话 要使用基于协程的会话,需要使用 async 关键字将任务函数声明为协程函数, 个固定线程内执行,当会话运行此回调时,其他所 有新的点击事件的回调(包括 serial_mode=False 的 回调)都将排队等待当前点击事件运行完成。 如果回 调函数运行时间很短,可以开启 serial_mode 来提高 性能。 使用示例: 注意 在PyWebIO会话(关于会话的概念见 Server与script模式 )结束后,事件回调 也将不起作用, 可以在任务函数末尾处使用 pywebio.session.hold()0 码力 | 106 页 | 7.34 MB | 1 年前3PyWebIO v1.0.3 使用手册
注意事项 PyWebIO 静态资源的托管 在开发阶段,使用后端框架提供的静态文件服务对于开发和调试都十分方便,上文的与 Web 框架集成的示例 代码也都是使用了后端框架提供的静态文件服务。但出于性能考虑,托管静态文件最好的方式是使用 反向代 理 (比如 nginx ) 或者 CDN 服务。 前端页面和后端接口的路径约定 PyWebIO 默认通过当前页面的同级的 ./io API 与后端进行通讯。 还提供了基于协程的会话。基于协程的会话接受协程函数作 为任务函数。 基于协程的会话为单线程模型,所有会话都运行在一个线程内。对于 IO 密集型的任务,协程比线程占用更 少的资源同时又拥有媲美于线程的性能。另外,协程的上下文切换具有可预测性,能够减少程序同步与加锁 的需要,可以有效避免大多数临界区问题。 使用协程会话 要使用基于协程的会话,需要使用 async 关键字将任务函数声明为协程函数,并使用 运行此回调时,其他所有新的点击事件的回调 (包括 serial_mode=False 的回 调) 都将排队等待当前点击事件运行完成。如果回调函数运行时间很短,可以开启 serial_mode 来提高性能。 使用示例: from functools import partial def row_action(choice, id): put_text("You click %s button0 码力 | 94 页 | 1.71 MB | 1 年前5PyWebIO v1.5.2 使用手册
,且其 他所有新的点击事件的回调 (包括 serial_mode=False 的回调) 都将排队等待 当前点击事件运行完成。如果回调函数运行时间很短,可以开启 serial_mode 来 提高性能。 Example: from functools import partial def row_action(choice, id): put_text("You click %s button 是一个阻塞式函数。 pin_update() 可以用来更新 pin 组件的输出属性。 4.6.2 Pin widgets 每个 pin 组件函数都对应一个input 模块中的输入函数。(出于性能原因,没有提供file_upload() 函数对应 的 pin 组件) Pin 组件函数支持大多数对应的输入函数的参数。这里列举了两者之间的一些不同: • Pin 组件函数的第一个参数始终是 Pin 还提供了基于协程的会话。基于协程的会话接受协程函数作 为任务函数。 基于协程的会话为单线程模型,所有会话都运行在一个线程内。对于 IO 密集型的任务,协程比线程占用更 少的资源同时又拥有媲美于线程的性能。另外,协程的上下文切换具有可预测性,能够减少程序同步与加锁 的需要,可以有效避免大多数临界区问题。 使用协程会话 要使用基于协程的会话,需要使用 async 关键字将任务函数声明为协程函数,并使用0 码力 | 125 页 | 1.72 MB | 1 年前3PyWebIO v1.6.0 使用手册
,且其 他所有新的点击事件的回调 (包括 serial_mode=False 的回调) 都将排队等待 当前点击事件运行完成。如果回调函数运行时间很短,可以开启 serial_mode 来 提高性能。 Example: from functools import partial def row_action(choice, id): put_text("You click %s button 是一个阻塞式函数。 pin_update() 可以用来更新 pin 组件的输出属性。 4.6.2 Pin widgets 每个 pin 组件函数都对应一个input 模块中的输入函数。(出于性能原因,没有提供file_upload() 函数对应 的 pin 组件) Pin 组件函数支持大多数对应的输入函数的参数。这里列举了两者之间的一些不同: • Pin 组件函数的第一个参数始终是 Pin 还提供了基于协程的会话。基于协程的会话接受协程函数作 为任务函数。 基于协程的会话为单线程模型,所有会话都运行在一个线程内。对于 IO 密集型的任务,协程比线程占用更 少的资源同时又拥有媲美于线程的性能。另外,协程的上下文切换具有可预测性,能够减少程序同步与加锁 的需要,可以有效避免大多数临界区问题。 使用协程会话 要使用基于协程的会话,需要使用 async 关键字将任务函数声明为协程函数,并使用0 码力 | 123 页 | 1.72 MB | 1 年前3PyWebIO v1.5.0 使用手册
,且其 他所有新的点击事件的回调 (包括 serial_mode=False 的回调) 都将排队等待 当前点击事件运行完成。如果回调函数运行时间很短,可以开启 serial_mode 来 提高性能。 Example: from functools import partial def row_action(choice, id): put_text("You click %s button 是一个阻塞式函数。 pin_update() 可以用来更新 pin 组件的输出属性。 4.6.2 Pin widgets 每个 pin 组件函数都对应一个input 模块中的输入函数。(出于性能原因,没有提供file_upload() 函数对应 的 pin 组件) Pin 组件函数支持大多数对应的输入函数的参数。这里列举了两者之间的一些不同: • Pin 组件函数的第一个参数始终是 Pin 还提供了基于协程的会话。基于协程的会话接受协程函数作 为任务函数。 基于协程的会话为单线程模型,所有会话都运行在一个线程内。对于 IO 密集型的任务,协程比线程占用更 少的资源同时又拥有媲美于线程的性能。另外,协程的上下文切换具有可预测性,能够减少程序同步与加锁 的需要,可以有效避免大多数临界区问题。 使用协程会话 要使用基于协程的会话,需要使用 async 关键字将任务函数声明为协程函数,并使用0 码力 | 125 页 | 1.72 MB | 1 年前3PyWebIO v1.6.3 使用手册
,且其 他所有新的点击事件的回调 (包括 serial_mode=False 的回调) 都将排队等待 当前点击事件运行完成。如果回调函数运行时间很短,可以开启 serial_mode 来 提高性能。 Example: from functools import partial def row_action(choice, id): put_text("You click %s button 是一个阻塞式函数。 pin_update() 可以用来更新 pin 组件的输出属性。 4.6.2 Pin widgets 每个 pin 组件函数都对应一个input 模块中的输入函数。(出于性能原因,没有提供file_upload() 函数对应 的 pin 组件) Pin 组件函数支持大多数对应的输入函数的参数。这里列举了两者之间的一些不同: • Pin 组件函数的第一个参数始终是 Pin 还提供了基于协程的会话。基于协程的会话接受协程函数作 为任务函数。 基于协程的会话为单线程模型,所有会话都运行在一个线程内。对于 IO 密集型的任务,协程比线程占用更 少的资源同时又拥有媲美于线程的性能。另外,协程的上下文切换具有可预测性,能够减少程序同步与加锁 的需要,可以有效避免大多数临界区问题。 使用协程会话 要使用基于协程的会话,需要使用 async 关键字将任务函数声明为协程函数,并使用0 码力 | 123 页 | 1.72 MB | 1 年前3PyWebIO v1.7.1 使用手册
,且其 他所有新的点击事件的回调 (包括 serial_mode=False 的回调) 都将排队等待 当前点击事件运行完成。如果回调函数运行时间很短,可以开启 serial_mode 来 提高性能。 Example: from functools import partial def row_action(choice, id): put_text("You click %s button 是一个阻塞式函数。 pin_update() 可以用来更新 pin 组件的输出属性。 4.6.2 Pin widgets 每个 pin 组件函数都对应一个input 模块中的输入函数。(出于性能原因,没有提供file_upload() 函数对应 的 pin 组件) Pin 组件函数支持大多数对应的输入函数的参数。这里列举了两者之间的一些不同: • Pin 组件函数的第一个参数始终是 Pin 还提供了基于协程的会话。基于协程的会话接受协程函数作 为任务函数。 基于协程的会话为单线程模型,所有会话都运行在一个线程内。对于 IO 密集型的任务,协程比线程占用更 少的资源同时又拥有媲美于线程的性能。另外,协程的上下文切换具有可预测性,能够减少程序同步与加锁 的需要,可以有效避免大多数临界区问题。 使用协程会话 要使用基于协程的会话,需要使用 async 关键字将任务函数声明为协程函数,并使用0 码力 | 127 页 | 1.73 MB | 1 年前3PyWebIO v1.5.1 使用手册
,且其 他所有新的点击事件的回调 (包括 serial_mode=False 的回调) 都将排队等待 当前点击事件运行完成。如果回调函数运行时间很短,可以开启 serial_mode 来 提高性能。 Example: from functools import partial def row_action(choice, id): put_text("You click %s button 是一个阻塞式函数。 pin_update() 可以用来更新 pin 组件的输出属性。 4.6.2 Pin widgets 每个 pin 组件函数都对应一个input 模块中的输入函数。(出于性能原因,没有提供file_upload() 函数对应 的 pin 组件) Pin 组件函数支持大多数对应的输入函数的参数。这里列举了两者之间的一些不同: • Pin 组件函数的第一个参数始终是 Pin 还提供了基于协程的会话。基于协程的会话接受协程函数作 为任务函数。 基于协程的会话为单线程模型,所有会话都运行在一个线程内。对于 IO 密集型的任务,协程比线程占用更 少的资源同时又拥有媲美于线程的性能。另外,协程的上下文切换具有可预测性,能够减少程序同步与加锁 的需要,可以有效避免大多数临界区问题。 使用协程会话 要使用基于协程的会话,需要使用 async 关键字将任务函数声明为协程函数,并使用0 码力 | 125 页 | 1.72 MB | 1 年前3PyWebIO v1.7.0 使用手册
,且其 他所有新的点击事件的回调 (包括 serial_mode=False 的回调) 都将排队等待 当前点击事件运行完成。如果回调函数运行时间很短,可以开启 serial_mode 来 提高性能。 Example: from functools import partial def row_action(choice, id): put_text("You click %s button 是一个阻塞式函数。 pin_update() 可以用来更新 pin 组件的输出属性。 4.6.2 Pin widgets 每个 pin 组件函数都对应一个input 模块中的输入函数。(出于性能原因,没有提供file_upload() 函数对应 的 pin 组件) Pin 组件函数支持大多数对应的输入函数的参数。这里列举了两者之间的一些不同: • Pin 组件函数的第一个参数始终是 Pin 还提供了基于协程的会话。基于协程的会话接受协程函数作 为任务函数。 基于协程的会话为单线程模型,所有会话都运行在一个线程内。对于 IO 密集型的任务,协程比线程占用更 少的资源同时又拥有媲美于线程的性能。另外,协程的上下文切换具有可预测性,能够减少程序同步与加锁 的需要,可以有效避免大多数临界区问题。 使用协程会话 要使用基于协程的会话,需要使用 async 关键字将任务函数声明为协程函数,并使用0 码力 | 125 页 | 1.72 MB | 1 年前3
共 48 条
- 1
- 2
- 3
- 4
- 5