欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Python私教张大鹏 PyWebIO快速入门教程

Python私教张大鹏 PyWebIO快速入门教程

2024/10/25 15:27:34 来源:https://blog.csdn.net/qq_37703224/article/details/139912754  浏览:    关键词:Python私教张大鹏 PyWebIO快速入门教程

概述

PyWebIO提供了一系列命令式的交互函数来在浏览器上获取用户输入和进行输出,将浏览器变成了一个“富文本终端”,可以用于构建简单的Web应用或基于浏览器的GUI应用。 使用PyWebIO,开发者能像编写终端脚本一样(基于input和print进行交互)来编写应用,无需具备HTML和JS的相关知识; PyWebIO还可以方便地整合进现有的Web服务。非常适合快速构建对UI要求不高的应用。

关键点:

  • 浏览器
  • 输入输出
  • 富文本终端
  • 构建简单的Web应用
  • 基于浏览器的GUI应用
  • 无需具备HTML和JS的相关知识
  • PyWebIO还可以方便地整合进现有的Web服务
  • 非常适合快速构建对UI要求不高的应用

PyWebIO的特性

使用同步而不是基于回调的方式获取输入,代码编写逻辑更自然

非声明式布局,布局方式简单高效

代码侵入性小,旧脚本代码仅需修改输入输出逻辑便可改造为Web服务

支持整合到现有的Web服务,目前支持与Flask、Django、Tornado、aiohttp、 FastAPI(Starlette)框架集成

同时支持基于线程的执行模型和基于协程的执行模型

支持结合第三方库实现数据可视化

安装依赖

pip install pywebio

在这里插入图片描述

这是一个使用PyWebIO计算 BMI指数 的脚本:

from pywebio.input import input, FLOAT
from pywebio.output import put_textdef bmi():height = input("请输入你的身高(cm):", type=FLOAT)weight = input("请输入你的体重(kg):", type=FLOAT)BMI = weight / (height / 100) ** 2top_status = [(14.9, '极瘦'), (18.4, '偏瘦'),(22.9, '正常'), (27.5, '过重'),(40.0, '肥胖'), (float('inf'), '非常肥胖')]for top, status in top_status:if BMI <= top:put_text('你的 BMI 值: %.1f,身体状态:%s' % (BMI, status))breakif __name__ == '__main__':bmi()

如果没有使用PyWebIO,这只是一个非常简单的脚本,而通过使用PyWebIO提供的输入输出函数,你可以在浏览器中与代码进行交互:

_images/demo.gif
将上面代码最后一行对 bmi() 的直接调用改为使用 pywebio.start_server(bmi, port=80) 便可以在80端口提供 bmi() 服务( 在线Demo )。

将 bmi() 服务整合到现有的Web框架请参考 与Web框架集成 。

代码改造和分析

from pywebio.input import input, FLOAT
from pywebio.output import put_text# input height
height = input("请输入你的身高(cm):", type=FLOAT)
# input weight
weight = input("请输入你的体重(kg):", type=FLOAT)# calculate
BMI = weight / (height / 100) ** 2# status list
top_status = [(14.9, '极瘦'),(18.4, '偏瘦'),(22.9, '正常'),(27.5, '过重'),(40.0, '肥胖'),(float('inf'), '非常肥胖')
]for top, status in top_status:if BMI <= top:put_text('你的 BMI 值: %.1f,身体状态:%s' % (BMI, status))break

简化入门案例


版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com