IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python-PyWebIO 组件(自学中) -> 正文阅读

[Python知识库]python-PyWebIO 组件(自学中)

目录

Overview

Pin widgets

pin_input

最基本的文本框pin组件

获取pin组件的值?

pin_wait_change 监听pin组件的变化

pin_update 更新pin组件的输出属性


???????

Overview

我们已经知道,PyWebIO中的输入函数是阻塞式的,输入表单会在成功提交后被销毁。在大多数场景下,使用这种方式接收用户输入已经够用了。但在一些场景下,你或许希望输入表单在提交后不消失,并且可以继续接收输入。
所以,PyWebIO提供了?pin?模块来实现持续性输入。
pin?模块主要有3部分内容:

  • pin 组件(widgets)
  • pin_wait_change()
  • pin_update()

Pin widgets

pin_input

每个pin组件函数都对应一个?input?模块中的输入函数。(出于性能原因,没有提供?file_upload()函数对应的pin组件)

Pin组件函数支持大多数对应的输入函数的参数。这里列举了两者之间的一些不同:

  • Pin组件函数的第一个参数始终是Pin组件的?name?,且当输出了同名的pin组件时,旧的pin组件会不可用。
  • Pin组件函数不支持?on_change?、?validate?回调,也不支持?required?参数。
  • Pin组件函数多了用于输出控制的?scope?和?position?参数。

组件都有:

put_input -- 文本输入组件
put_textarea -- 文本域输入组件
put_select -- 下拉选择输入组件
put_checkbox -- 多选框组件
put_radio -- 单选按钮组件
put_slider -- 滑块输入组件
put_actions -- action按钮
以上组件参数,可见input相对应的参数。

最基本的文本框pin组件

from pywebio.pin import *
#这里要和前面的input区分开来。
put_input('input2', label='This is a input widget').show()
put_select('select', options=['A', 'B', 'C']).show()

with use_scope('search-area'):
    put_input('search', placeholder='Search')


put_row([
    put_input('input'),
    put_select('select', options=['A', 'B', 'C'])
])


with use_scope('search-area'):
    put_input('search_2', placeholder='Search-2')
    put_row([
    put_input('input_2'),
    put_select('select_2', options=['D', 'E', 'F'])
])

获取pin组件的值?

#通过使用pin对象来获取pin组件的值
put_input('pin_name')
put_buttons(['Get Pin Value'], lambda _: put_text(pin.pin_name))
#pin组件函数的第一个参数为pin组件的 name
pin['pin_name'] == pin.pin_name
#同时name只能包含字母、数字和下划线,否则:
#AssertionError: pin `name` can only contain letters, digits and underscore

pin_wait_change 监听pin组件的变化

pywebio.pin.pin_wait_change(*names, timeout=None)

pin_wait_change()?监听一组pin组件,当其中任意一个的值发生变化后,函数返回发生变化的组件的?name?和值。

参数

  • names(str) - pin组件name列表
  • timeout(int/None) - 当?timeout?为正数时,?pin_wait_change()?会最多阻塞?timeout?秒然后返回?None?如果这段时间内监听的pin组件的值没有发生变化的话。 将?timeout?设置为?None?(默认)来关闭超时

{"name": 发生变化的pin组件的name, "value": 发生变化的pin组件的当前值}?, 当超时发生后,返回?None

put_input('a', type='number', value=0)
put_input('b', type='number', value=0)

while True:
    changed = pin_wait_change('a', 'b')
    with use_scope('res', clear=True):
        put_code(changed)
        put_text("a + b = %s" % (pin.a + pin.b))

pin_update 更新pin组件的输出属性

pywebio.pin.pin_update(name, **spec)

?参数

  • name(str) - 目标pin组件的name
  • spec - 需要被更新的pin组件的参数。注意以下参数无法被更新:?type,?name,?code,?multiple
put_input('c', type='number', value=0, help_text="你动我试试?").show()

pin_update('c', value=1, help_text="试试就试试!")

?

该代码已经上传至github:GitHub - wujianming604/learn-PyWebIO: pywebio 自学中

组件的运用还是要看自己的项目需求,?我前阵子写了个比较简单的小项目,针对sanger截图的,后面找个时间写上来。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-08 13:46:09  更:2021-12-08 13:48:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:27:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码