PyWebIO v1.6.0 使用手册
1.72 MB
123 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
中文(简体) | .pdf | 3 |
摘要 | ||
文档详细介绍了PyWebIO v1.6.0的使用方法,包括输入函数、输出函数、服务器-客户端通信协议以及与主流Web框架的集成。PyWebIO通过命令式API实现用户交互,简化了Web开发流程。输入函数如input、select等用于获取用户输入,支持多种表单类型。输出函数用于在浏览器显示内容,并支持动画和布局。服务器与客户端通过WebSocket或Http通信,支持Tornado、Flask、Django等框架的集成。文档还介绍了高级特性、第三方库生态及构建独立应用的方法。 | ||
AI总结 | ||
# 《PyWebIO v1.6.0 使用手册》总结
## 1. 概述
PyWebIO 是一款支持通过简单的 Python 代码实现用户交互的库,旨在将浏览器变为“富文本终端”,适合快速构建对 UI 要求不高的 Web 应用或基于浏览器的 GUI 应用。PyWebIO 的特点包括:
- 使用同步方式获取输入,代码逻辑自然。
- 非声明式布局,布局方式简单高效。
- 支持整合到现有的 Web 服务(如 Flask、Django、Tornado 等)。
- 同时支持基于线程和基于协程的执行模型。
- 支持结合第三方库实现数据可视化。
---
## 2. 核心功能
### 2.1 输入函数
PyWebIO 的输入函数定义在 `pywebio.input` 模块中,可以通过 `from pywebio.input import *` 引入。主要输入函数包括:
- `input()`:文本输入,支持指定类型(如 `NUMBER`、`PASSWORD` 等)。
- `select()`:下拉选择。
- `checkbox()`:多选框。
- `radio()`:单选按钮。
- `textarea()`:多行文本输入。
- `file_upload()`:文件上传。
### 2.2 输出函数
通过 `put_text()`、`put_image()`、`put_table()` 等函数可以向浏览器输出内容,并支持布局控制和动画效果。
### 2.3 会话控制
- `start_server()`:启动服务。
- `remove(anchor)`:移除指定内容。
- `scroll_to(anchor, position)`:控制滚动位置。
---
## 3. 通信协议
PyWebIO 采用服务器-客户端架构,支持两种通信方式:
- **WebSocket 通信**:适用于 Tornado 或 aiohttp 后端,通过 WebSocket 连接发送 JSON 序列化的消息。
- **HTTP 通信**:适用于 Flask 或 Django 后端,通过轮询和提交表单进行交互。
通信中,服务器向客户端发送的数据称为 **command**,客户端向服务器发送的数据称为 **event**。
---
## 4. 高级特性
- **动画与 UI 增强**:添加元素显示动画、footer 等提升用户体验。
- **测试与 CI**:支持添加测试用例,构建 CI 工作流。
- **跨域支持**:`start_server` 和相关函数添加跨域支持。
---
## 5. 第三方库生态
- **数据可视化**:支持 Bokeh 等第三方库实现实时交互式数据可视化。
- **打包工具**:通过 PyInstaller 将应用打包为单独可执行文件或文件夹。
---
## 6. 版本更新
### 6.1 功能更新
- `input_group()` 添加 `cancelable` 参数,允许用户取消输入。
- `(actions()` 函数支持 `reset` 和 `cancel` 按钮类型。
- `put_image()` 和 `clear_range()` 支持锚点存在检查。
### 6.2 BUG 修复
- 修复 `Session` 对象构造函数无法识别 `functools.partial` 处理的任务函数的问题。
- 会话关闭时清理更彻底,未完成的 PyWebIO 调用会抛出 `SessionClosedException` 异常。
---
## 7. 平台集成
PyWebIO 支持与主流 Web 框架集成,如:
- **Tornado**:通过 `webio_handler()` 绑定 WebSocketHandler。
- **Flask**:通过 Flask 路由直接运行 PyWebIO 应用。
- **Django**:将 PyWebIO 应用集成到 Django 视图中。
- **aiohttp**:通过 middleware 集成。
- **FastAPI/Starlette**:支持 ASGI 应用集成。
示例代码(Tornado 集成):
```python
import tornado.ioloop
import tornado.web
from pywebio.platform.tornado import webio_handler
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
if __name__ == "__main__":
application = tornado.web.Application([
(r"/", MainHandler),
(r"/tool", webio_handler(task_func)), # 绑定 PyWebIO 应用
])
application.listen(port=80, address='localhost')
tornado.ioloop.IOLoop.current().start()
```
---
## 8. 总结
PyWebIO 通过简单的命令式 API 实现了浏览器端的用户交互和输出,适合快速开发和轻量级应用。其支持丰富的输入输出功能、多种通信协议、主流 Web 框架集成以及第三方库拓展,使其成为一种高效的 Web 开发工具。 |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
116 页请下载阅读 -
文档评分