PyWebIO v1.3.2 Documentation
7.44 MB
133 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
英语 | .epub | 3 |
摘要 | ||
PyWebIO是一个用于在浏览器中创建交互式Web应用的库,允许开发者用Python编写代码,无需HTML和JavaScript知识。它支持Flask、Django、Tornado等多种Web框架,提供了丰富的输入和输出功能,支持数据可视化,并能集成到现有Web服务中。PyWebIO采用同步方式处理输入,非声明式布局简化了开发流程,同时支持WebSocket和HTTP协议实现客户端与服务器的通信。 | ||
AI总结 | ||
以下是对《PyWebIO v1.3.2 Documentation》的中文总结:
---
**一、版本更新**
1. **PyWebIO v1.3.2**
- 修复了文件上传功能的安全漏洞,确保返回的文件名不会被误解为路径。
- 修复了其他多个Bug。
2. **PyWebIO v1.2(2021年3月18日)**
- 新增了WebSocket连接的重连接功能,通过设置`reconnect_timeout`参数实现。
- 添加了`path_deploy()`、`path_deploy_http()`和命令行工具`pywebio-path-deploy`,用于从目录部署PyWebIO应用。
- 所有文档和演示现在支持英文版本。
- 部分输出函数支持上下文管理。
- 新增了`put_info()`、`put_error()`、`put_warning()`、`put_success()`等输出函数。
- 添加了`pywebio.utils.pyinstaller_datas()`,用于在使用PyInstaller打包时获取PyWebIO数据文件。
- 添加了数据可视化工具`pyg2plot`的文档。
- 部分输出函数(如`reset()`、`append()`、`insert()`)现在支持任意类型的内容。
- 弃用了`pywebio.session.get_info()`,改用`pywebio.session.info`。
- 提醒:IE浏览器不支持消息提示功能。
3. **PyWebIO v0.2(2020年4月30日)**
- 支持与Django、aiohttp等Web框架集成。
- 支持使用`plotly`、`pyecharts`等第三方库进行数据可视化。
- 添加了会话控制函数`defer_call()`和`hold()`。
- 新增了`put_image()`函数,用于输出图像。
- 支持移除内容和UI动画效果,提升用户体验。
- 添加了测试用例并构建了CI工作流。
---
**二、架构概述**
PyWebIO采用服务器-客户端架构:
- 服务器执行任务代码,客户端(即用户浏览器)通过网络与服务器交互。
- 通信方式分为WebSocket和HTTP两种:
- 使用Tornado或aiohttp后端时,采用WebSocket通信。
- 使用Flask或Django后端时,采用HTTP通信。
---
**三、功能特点**
1. **核心功能**
- 通过同步方式获取用户输入,无需回调函数。
- 非声明式布局,简单且高效。
- 对现有脚本代码的入侵性低,可快速将脚本转化为Web服务。
- 支持集成到现有Web服务中,目前支持Flask、Django、Tornado、aiohttp和FastAPI(Starlette)框架。
- 支持异步和协程。
- 支持数据可视化功能。
2. **安装**
- 稳定版:`pip3 install -U pywebio`
- 开发版:`pip3 install -U https://code.aliyun.com/wang0618/pywebio/repository/archive.zip`
- 前提:Python 3.5.2或更高版本。
---
**四、示例**
以下是一个简单的BMI计算脚本示例:
```python
from pywebio.input import input, FLOAT
def check_form(data):
if len(data['name']) > 6:
return ('name', 'Name too long!')
if data['age'] <= 0:
return ('age', 'Age can not be negative!')
data = input_group("Basic info", [
input('Input your name', name='name'),
input('Input your age', name='age', type=FLOAT, validate=check_form)
])
put_text("Hello, %s! Your BMI is: " % data['name'])
```
---
**五、集成**
PyWebIO应用可以集成到现有Web框架中:
1. **Flask**
- 需手动安装Flask,版本不低于0.10。
- 示例:
```python
from flask import Flask
from pywebio.platform.flask import webio_view
app = Flask(__name__)
app.add_url_rule('/tool', view_func=webio_view(task_func))
```
2. **Tornado**
- 使用`pywebio.platform.tornado.webio_handler()`获取WebSocketHandler。
- 示例:
```python
import tornado.ioloop
import tornado.web
from pywebio.platform.tornado import webio_handler
application = tornado.web.Application([
(r"/tool", webio_handler(task_func)),
])
application.listen(80)
tornado.ioloop.IOLoop.current().start()
```
3. **Django、aiohttp、FastAPI**
- 集成方式详见文档。
---
以上为《PyWebIO v1.3.2 Documentation》的核心内容总结,涵盖了版本更新、架构、功能、安装和集成的主要信息。 |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
126 页请下载阅读 -
文档评分