epub文档 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 页请下载阅读 -
文档评分
请文明评论,理性发言.