PyWebIO v1.3.1 使用手册
7.45 MB
132 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
中文(简体) | .epub | 3 |
摘要 | ||
PyWebIO PyWebIO提供了一系列命令式的交互函数来在浏览器上获取用户输入和进行输 出,将浏览器变成了一个“富文本终端”,可以用于构建简单的Web应用或基于 浏览器的GUI应用。 使用PyWebIO,开发者能像编写终端脚本一样(基于input 和print进行交互)来编写应用,无需具备HTML和JS的相关知识; PyWebIO还可 以方便地整合进现有的Web服务。非常适合快速构建对UI要求不高的应用。 特性 使用同步而不是基于回调的方式获取输入,代码编写逻辑更自然 非声明式布局,布局方式简单 | ||
AI总结 | ||
# PyWebIO v1.3.1 使用手册总结
## 1. 概述
PyWebIO 是一个 Python 库,允许开发者通过编写 Python 代码在浏览器中实现交互,就像在终端中一样。它提供了一系列命令式 API,用于在浏览器上获取用户输入和输出内容,支持快速构建 Web 应用或基于浏览器的 GUI 应用。
### 核心特点:
- 使用同步方式获取输入,代码逻辑更自然。
- 非声明式布局,简单高效。
- 代码侵入性小,易于改造现有脚本。
- 支持与 Flask、Django、Tornado、aiohttp、FastAPI 等 Web 框架集成。
- 同时支持基于线程和协程的执行模型。
---
## 2. 输入与输出
### 2.1 输入
输入函数定义在 `pywebio.input` 模块中,调用后会在浏览器上弹出输入表单。输入函数是阻塞式的,类似 Python 内置的 `input` 函数。
####示例:
```python
from pywebio.input import input
name = input("What is your name?")
age = input("How old are you?", type=NUMBER)
```
#### 输入类型:
- 文本输入
- 数字输入 (`NUMBER`)
- 单选下拉框 (`SELECT`)
- 多选下拉框 (`CHECKBOX`)
- 文件上传 (`file_upload`)
### 2.2 输出
输出函数用于将内容显示在浏览器中,定义在 `pywebio.output` 模块中。
#### 示例:
```python
from pywebio.output import put_text, put_image, put_table
put_text("Hello, world!")
put_image(open("example.png", "rb"))
put_table([
["Name", "Age"],
["Alice", 25],
["Bob", 30]
])
```
#### 输出类型:
- 文本 (`put_text`)
- 图片 (`put_image`)
- 表格 (`put_table`)
- Markdown (`put_markdown`)
- HTML (`put_html`)
### 2.3 布局与事件
- 支持通过 `put_row` 和 `put_grid` 实现布局。
- 支持点击事件和会话结束时的清理函数 (`defer_call`)。
---
## 3. 会话与部署
### 3.1 会话
- 会话结束时,清理函数会被执行。
- 使用 `defer_call` 可以为会话结束设置清理函数。
#### 示例:
```python
from pywebio import defer_call
defer_call(lambda: print("Session ended"))
```
### 3.2 部署方式
PyWebIO 提供两种部署模式:
1. **Server 模式**:
- 将 PyWebIO 应用集成到 Web 框架中(如 Flask、Tornado 等)。
- 使用 `start_server` 启动服务或 `path_deploy` 托管目录中的应用。
#### 示例:
```python
from pywebio import start_server
def task_func():
# 应用逻辑
start_server(task_func, port=80)
```
2. **Script 模式**:
- 更灵活,适合快速开发。
- 输入输出函数可以在任意位置调用。
### 3.3 与 Web 框架集成
支持与主流 Web 框架集成:
- **Tornado**:使用 `webio_handler` 绑定到路由。
- **Flask**:通过 `add_url_rule` 将任务函数注册为路由。
- **Django**:在视图函数中运行 PyWebIO 应用。
- **FastAPI/Starlette**:通过 `webio_handler` 集成。
#### 示例(Tornado 集成):
```python
import tornado.ioloop
import tornado.web
from pywebio.platform.tornado import webio_handler
def task_func():
# 应用逻辑
if __name__ == "__main__":
application = tornado.web.Application([
(r"/tool", webio_handler(task_func)),
])
application.listen(80)
tornado.ioloop.IOLoop.current().start()
```
---
## 4. 更新日志
### v1.1 更新:
- 添加安全性支持:`put_html()` 和 `put_markdown()` 支持防 XSS 攻击。
- 添加国际化支持。
- 支持 SEO 优化,可通过 `pywebio.platform.seo()` 设置标题和简介。
- 添加 CDN 支持,提升访问速度。
### v1.2 更新:
- WebSocket 支持连接重连(通过 `reconnect_timeout` 参数)。
- 添加 `path_deploy()` 和 `path_deploy_http()` 实现目录托管。
- 新增提示消息函数:`put_info()`, `put_error()`, `put_warning()`, `put_success()`。
- 添加 PyInstaller 打包支持。
- 修复多个 bugs。
---
## 5. 安装与要求
### 安装:
- 稳定版:`pip3 install -U pywebio`
- 开发版:`pip3 install -U https://code.aliyun.com/wang0618/pywebio/repository/archive.zip`
### 系统要求:
- Python 3.5.2 或更高版本。
---
## 6. 注意事项
- 在 Server 模式下,输入输出函数只能在任务函数上下文中调用。
-IE 浏览器不被支持。
---
通过 PyWebIO,开发者可以像编写终端脚本一样快速构建 Web 应用,无需深入了解 HTML 和 JavaScript,适合快速开发和原型设计。 |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
125 页请下载阅读 -
文档评分