Python新晋界面库pywebio,不会这个技巧不可能用好它

liftword4个月前 (03-05)技术文章18


界面的制作一直是 Python 的痛!使用 Python 制作桌面端界面是非常痛苦的过程(又难学又难看)。不过,Python 已经出现了几个基于web前端的库,他们的基本机制大同小异,如果对 界面操作性没有太大要求,那么这些库就比较适合你

这个系列基于 pywebio 的一系列实战应用,让我们从实战中学习这个库的使用!

如果对你有帮助,记得转发推荐给你的好友!

你的点赞、收藏是对我的最大鼓励!

本节源码回复"pywebio"即可获取

本文是对多种交互界面的套路,以及 pywebio 中对应解决方式的讲解。是本系列后续实战案例的关键,如果你是能尽快上手 pywebio 或 streamlit 这些库,那么请务必好好理解

上一节:

Python简单实用web界面,pywebio常见的3种交互套路

安装库:

pip install -U pywebio

非阻塞输入

上一级都是在解决输出内容持续更新的问题,但是交互页面上也有一种很常见的需求。

一次性显示整个页面(输入和输出的内容),用户填写后,部分区域响应更新。

如下例子:

上一节我们学会了"一问一答"模式,那么这种需求就是让用户一次性看到所有的问题,他可以慢慢填写,不断修改

这里的关键点是, 如何使得输入控件不阻塞代码 ,毕竟结果是在输入方法之后才被执行显示。

为此,pywebio 提供一个 "pin" 模块实现:

  • 行4:导入 pin 模块
  • 行10、11:使用 pin.put_input 放置一个不阻塞输入的 输入框。第一个参数设置一个名字,方便后续获取它的输入值
  • 此时不需要定义变量接受返回,因为这个输入框不会立刻有返回。
  • 行14、15:使用 pin.pin 对象,类似一个字典,通过前面定义的名字可以获取对应输入框的值
  • 行20:这是关键方法,下面会详细介绍

这种方式其实违背了 pywebio 推荐的命令流布局方式


回调执行

之前我们了解到,一旦我们定义的函数执行完毕,就表示界面不再有任何更新,函数中定义的变量都被销毁。

但是有些动作的触发时机是用户决定,比如前面的例子中:

  • 当你看到整个页面后,实际上函数已经执行完毕
  • 正常来说,此时 按钮 设置的 lambda 已经被销毁,界面上点击按钮就无法触发 lambda
  • 行20:hold 方法告诉 pywebio 保持我们函数中定义的对象

重点:

通常当你使用 callback,那么就需要在函数结尾处调用 hold 方法

关于 pywebio 的基本套路知识就是这些,接下来继续实战应用!

推荐阅读:

相关文章

python中执行shell命令的几个方法小结!很实用,帮助很大

最近有个需求就是页面上执行shell命令,第一想到的就是os.system,os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令执行结果 0或者1,当然不满足需求了。...

Python 中的一些命令行命令

虽然 Python 通常用于构建具有图形用户界面 (GUI) 的应用程序,但它也支持命令行交互。命令行界面 (CLI) 是一种基于文本的方法,用于与计算机的操作系统进行交互并运行程序。从命令行运行 P...

Python 基础教程 九之cron定时执行python脚本

前言在Linux或Unix系统中,你可以使用cron任务来定时执行Python脚本。cron是一个基于时间的作业调度器,允许你安排命令或脚本在系统上自动执行。安装cron大多数Linux发行版默认安装...

Python 基础教程十之设置cron作业在bash sh文件中执行python脚本

简介在上一节中,我们介绍了使用cron作业定时执行python脚本。这一节我们介绍使用bash sh文件执行批量python脚本。先回顾一下cron内容:设置cron作业是一种在Linux系统中定时执...

python常用命令及操作语句

常用操作脚本1.查看python安装包命令pip3 list2.python 安装封装包命令pip3 install 包名# 例如:pip3 install numpy3.python安装tensor...

python远程管理编程中如何处理Fn(功能)键

我之前管理过一款通讯设备,是需要登录远程管理客户端后才能进行操作的。这个设备的远程管理软件的功能挺多,但是主要的设备管理操作还是在一个单调的字符界面下完成的,后来经其他工程师提醒,我才意识到此时该软件...