网站首页 > 技术文章 正文
界面的制作一直是 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 的基本套路知识就是这些,接下来继续实战应用!
推荐阅读:
猜你喜欢
- 2025-05-25 前端怎么打包成小程序和APP圈子系统开发平台圈子系统源码
- 2024-09-24 五种可视化方案分析webpack打包性能瓶颈
- 2024-09-24 我在实际前端项目中遇到的坑(Electron)
- 2024-09-24 vue-cli 大型项目打包优化
- 2024-09-24 vscode运行打包后的npm前端dist文件
- 2024-09-24 关于vue-cli 3配置打包优化要点
- 2024-09-24 一起来学习打包工具 rollup.js 入门,也许你会需要
- 2024-09-24 运行时 Bun 又添王炸,支持 Bun宏!
- 2024-09-24 探寻webpack打包vue项目特别慢问题
- 2024-09-24 将前端框架vue打包后部署到node服务中,本文采用egg框架演示
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)