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_text

def bmi():
    height = input("请输入你的身高(cm):", type=FLOAT)
    weight = input("请输入你的体重(kg):", type=FLOAT)

    BMI = weight / (height / 100) ** 2

    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

if __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

简化入门案例


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python私教

创业不易,请打赏支持我一点吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值