python三方库—pywebio


一、pywebio是什么?

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

  • 对于不想写前端(html/css/js)代码或者对前端不熟悉的同学,pywebio模块提供了纯python实现网页,快速搭建网站。
  • 当pywebio遇上数据可视化工具pyrcharts的时候,能够快速发布数据可视化图表

二、使用步骤

1. pywebio 基本input&output组件介绍

# -*- coding:utf-8 -*-

import time, os
from pywebio.input import NUMBER, TEXT
from pywebio.input import input, textarea, select, checkbox, radio, slider, actions, file_upload
from pywebio.input import input_group, input_update
from pywebio.output import put_text, put_markdown, put_buttons, put_scope, get_scope, put_info, put_warning, put_error, put_success, put_html, put_link, put_processbar, put_loading, put_code, put_table, put_button, put_buttons, put_image, put_file, put_tabs, put_collapse, put_scrollable, put_widget, put_row, put_column, put_grid
from pywebio.output import popup, toast, span, style
from pywebio import start_server


current_workspace = os.path.join(os.path.dirname(os.path.abspath(__file__)))
out_path = os.path.join(current_workspace, 'output')
'''pywebio中 Input组件介绍:
input(), 输入框
textarea(), 多行文本输入框
select(), 下拉选框
checkbox(), 多(复)选框
radio(), 单选框
slider(), 进度条
file_upload(), 文件上传按钮
actions(), 按钮
input_group(), 是以上几个组件的一个组合,我们可以认为是一个表单:Input group
input_update(), 动态更新组件的内容:Update attributes of input field
input_control(), 发送input命令,监听事件,验证输入项,返回结果

注意事项: 单个标签不能添加name属性,input_group中需要添加name属性。
'''
def user_input_single_component():
    '''input_component'''  #注意函数第一行注释为浏览器页面名字

    '''组件常用详细的参数介绍:
    validate=check_name(函数名),校验输入合法性;
    action=('Now', set_now_ts), 输入框右侧有一个小按钮,点击按钮快速填写值,我将这个功能称之为格式化输入;
    οnchange=('xx', func), 当前输入框根据某个输入框输入内容而自动改变内容,常常和input_update()联合应用;最典型的应用为 省份和城市的对应关系填写。
    placeholder=string, 占位符;输入框中的提示内容;注意优先级低于value;
    required=True/False, 校验输入框不能为空,为必填项;
    readonly=True/False, 输入框内容只读;
    datalist=list, 常驻输入联想
    help_text=string, 填写帮助文字说明;
    '''
    ## 单个组件
    def check_name(username):
        if len(username) < 1 or len(username) > 60:
            return 'username is illegality!'
        else:
            pass
        
    def set_now_ts(set_value):
        set_value(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))

    username = input(label='姓名', type=TEXT, validate=check_name, required=True, placeholder='xx xx xx', help_text='please input your name', action=('now', set_now_ts), datalist=['jack','zhangsan','lisi','qianwu'])
    put_text(username) #输出到浏览器
    print(username) #后台输出信息
    
### action 参数重点demo如下,多个按钮:
    from datetime import date,timedelta
    def select_date(set_value):
        with popup('Select Date'): #popup 弹框
            put_buttons(['Today'], onclick=[lambda: set_value(date.today(), 'Today')])
            put_buttons(['Yesterday'], onclick=[lambda: set_value(date.today() - timedelta(days=1), 'Yesterday')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值