【团队效率提升】Python-PyWebIO介绍
off999 2025-05-28 19:37 73 浏览 0 评论
作者:京东零售 关键
Q&A快速了解PyWebIO
Q:首先,什么是PyWebIO?
A:PyWebIO提供了一系列命令式的交互函数,能够让咱们用只用Python就可以编写 Web 应用, 不需要编写前端页面和后端接口, 让简易的UI开发效率大大提高(本人非研发,用词可能不妥,大家轻点喷)
Q:其次,我们能用来干嘛?? 这对一个团队的效率提升有什么作用??
A:Pywebio的作用在于让咱们可以快速的开发一个带有UI界面的,支持用户输入的,以既定的逻辑输出结果的应用。 那么,我们是不是可以将团队内一些机械性的数据处理,数据异动分析等的工作以既定逻辑的方式通过Pywebio输出一个可复用的应用给大家使用呢? 当然,日常的数据运营过程中,咱们肯定不是面对着一成不变的case。 那么,我们是不是可以用不同参数输入的方式来达到一定的泛用性拓展呢? 只要,case和case之间的底层逻辑是一致的,我们就可以用同一套逻辑,不同的入参来达到不同结果输出的获取。
Exampl 倘若,我们每天都有一项工作,每天对着一份又一份业务反馈的订单,然后部门需要对着这些订单本身进行一个初步的风险分层,我们是不是可以把风险分层的底层规则写在后端,然后通过PywebIO来支持不同情况下的不同规则阈值输入, 快速获取咱们所需要的风险分层结果。 (当然,如果数据允许,直接写SQL也可以,可是,SQL需要一定的门槛,而PywebIO则可以通过UI的方式分享给那些没有技术背景的运营人员进行0代码使用。)
以下正式开始用一个例子来逐步介绍PywebIO拓展包
简介
虚拟背景: 每天需要一份又一份地对业务反馈的样本来进行风险分层,为了提高处理效率。
计划方案: 通过现有风险标签的波尔标签,非波尔标签体系来搭建一个支持 灵活配置阈值来快速获取分层结果的UI应用。
方案简介:基本逻辑如下,(以下均为举例所示,并不代表该方案就可以进行风险分层哈,大家请注意)
开始实现:这里的例子采取的是非数据库模式,支持的是上传本地csv,然后进行阈值配置。
Step one:本地文件上传
首先,肯定是得先文件上传的代码。
##例子如下:
import pandas as pd
from pywebio.input import *
from pywebio import start_server
from pywebio.output import *
import nest_asyncio
import numpy as np
import os
import time
nest_asyncio.apply()
import pandas as pd
from pywebio.input import *
from pywebio import start_server
from pywebio.output import *
import nest_asyncio
import numpy as np
import os
import time
nest_asyncio.apply()
def read_csv():
put_markdown('# 只支持pin')
put_markdown('功能如下:')
put_markdown("""
- 选择与程序再**同一文件夹**的文件
- 输入你希望卡的风险值阈值 **不输入则默认-10**
- 自动加载解析输出极黑标签占比以及明细数据
- 请勾选你所需要的标签**(不勾选=全选)**,然后点击提交即可
""")
file = file_upload('只支持上传该程序所在文件夹的csv文件哦', '.csv')
## 本地文件
raw_data = pd.read_csv(os.getcwd() + "\" + file['filename'], encoding='gbk')
put_html(raw_data.to_html())
if __name__ == '__main__':
start_server(read_csv, port=8081, debug=True, cdn=False, auto_open_webbrowser=True)
允许代码后,因为” auto_open_webbrowser=True“,所以自动弹出一个WebUI,如下左图,选择上传的文件,即可看到下右图的文件数据
Step two:风险值卡控
第一步也只是上传文件,展示文件,还没达到咱们的目的。 所以,第二步则是需要对上传的csv本身进行数据处理,逻辑判断。 这里其实很好理解,在step one 中已经获取了上传的文件且转成dataframe了对吧,那么实际,咱们只需要沿用咱们熟悉的pandans对dataframe进行处理即可。
import pandas as pd
from pywebio.input import *
from pywebio import start_server
from pywebio.output import *
import nest_asyncio
import numpy as np
import os
import time
nest_asyncio.apply()
def 配置规则_风险值阈值(df, user_risk, pp_risk=None):
df_updated = df[(df['风险值A'] >=user_risk)|((df['风险值B'] >=pp_risk))]
return df_updated
def read_csv():
put_markdown('# 只支持pin')
put_markdown('功能如下:')
put_markdown("""
- 选择与程序再**同一文件夹**的文件
- 输入你希望卡的风险值阈值 **不输入则默认-10**
- 自动加载解析输出极黑标签占比以及明细数据
- 请勾选你所需要的标签**(不勾选=全选)**,然后点击提交即可
""")
file = file_upload('只支持上传该程序所在文件夹的csv文件哦', '.csv')
## 本地文件
data = []
raw_data = pd.read_csv(os.getcwd() + "\" + file['filename'], encoding='gbk')
put_html(raw_data.to_html())
## -------------------------- 下面是 step two 新增的代码 --------------------------
risk_value = input_group(
"risk_value",
[
input("风险值A(默认-10)?", name="user_risk", type=NUMBER),
input("风险值B(默认-10)?", name="pp_risk", type=NUMBER)
],
)
raw_data_upated = 配置规则_风险值阈值(raw_data,risk_value['user_risk'], risk_value['pp_risk'])
table1 = raw_data_upated.groupby('指标').账号.count().reset_index()
table1['占比'] = table1.账号 / len(raw_data_upated.账号.unique()) * 100
table1.sort_values('占比', ascending=False, inplace=True)
put_html(table1.to_html())
## -------------------------- 上面是 step two 新增的代码 --------------------------
if __name__ == '__main__':
start_server(read_csv, port=8081, debug=True, cdn=False, auto_open_webbrowser=True)
Step Three: 标签卡控
从第二步,我们已经完成了风险值阈值的卡控,然后第三步就是标签的选取了。从对标签的理解和应用经验以及第二步得到的标签在样本中的占比,咱们就可以快速的知道,这个样本里面的标签分布分别是什么。进一步可以通过标签的选取达到最终符合我们风险分层结果中有风险的那一部分的输出了
import pandas as pd
from pywebio.input import *
from pywebio import start_server
from pywebio.output import *
import nest_asyncio
import numpy as np
import os
import time
nest_asyncio.apply()
def 配置规则_风险值阈值(df, user_risk, pp_risk=None):
df_updated = df[(df['风险值A'] >=user_risk)|((df['风险值B'] >=pp_risk))]
return df_updated
def read_csv():
put_markdown('# 只支持pin')
put_markdown('功能如下:')
put_markdown("""
- 选择与程序再**同一文件夹**的文件
- 输入你希望卡的风险值阈值 **不输入则默认-10**
- 自动加载解析输出极黑标签占比以及明细数据
- 请勾选你所需要的标签**(不勾选=全选)**,然后点击提交即可
""")
file = file_upload('只支持上传该程序所在文件夹的csv文件哦', '.csv')
## 本地文件
data = []
raw_data = pd.read_csv(os.getcwd() + "\" + file['filename'], encoding='gbk')
put_html(raw_data.to_html())
risk_value = input_group(
"risk_value",
[
input("风险值A(默认-10)?", name="user_risk", type=NUMBER),
input("风险值B(默认-10)?", name="pp_risk", type=NUMBER)
],
)
raw_data_upated = 配置规则_风险值阈值(raw_data,risk_value['user_risk'], risk_value['pp_risk'])
table1 = raw_data_upated.groupby('指标').账号.count().reset_index()
table1['占比'] = table1.账号 / len(raw_data_upated.账号.unique()) * 100
table1.sort_values('占比', ascending=False, inplace=True)
put_html(table1.to_html())
## -------------------------- 下面是 step three 新增的代码 --------------------------
set_list = raw_data_upated.指标.unique()
list_save = checkbox(label='勾选保留的标签,不勾选=全选', options=set_list, inline=True)
if list_save == []:
list_save = set_list
else:
list_save = list_save
raw_data_upated = raw_data_upated[raw_data_upated.指标.isin(list_save)]
put_html(raw_data_upated.to_html())
def Save0():
put_markdown("You click Save button, Done").show()
raw_data_upated.to_excel(os.getcwd() + "\" + '输出的风险明细.xlsx', index=False)
put_markdown("find your file on 程序同级文件夹下的 文件 : 输出的风险明细.xlsx").show()
put_buttons(['下载文件"对内不对外输出明细.xlsx"'], onclick=[Save0]).show()
## -------------------------- 上面是 step three 新增的代码 --------------------------
if __name__ == '__main__':
start_server(read_csv, port=8081, debug=True, cdn=False, auto_open_webbrowser=True)
总结
这里只是举了个简单的例子,一个支持阈值+标签卡控,快速获取符合要求的目标群体的例子。 实际上,这个框架的拓展还有很多。例如:
1.直连数据库,可以帮住那些不会sql的同事可以自定义快速获取业务数据。
2.Pyinstaller封装成本地程序,脱离代码环境,可以在任意电脑,任意环境,任意人士进行使用。
希望这个例子可以帮助到大家,感谢大家的耐心读取
相关推荐
- 安全教育登录入口平台(安全教育登录入口平台官网)
-
122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...
- 大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)
-
大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...
-
- 哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
-
要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...
-
2026-02-04 09:03 off999
- 电信宽带测速官网入口(电信宽带测速官网入口app)
-
这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...
- 植物大战僵尸95版手机下载(植物大战僵尸95 版下载)
-
1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...
- 免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)
-
1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...
- 2025世界杯赛程表(2025世界杯在哪个国家)
-
2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...
- 下载搜狐视频电视剧(搜狐电视剧下载安装)
-
搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...
- 永久免费听歌网站(丫丫音乐网)
-
可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...
- 音乐格式转换mp3软件(音乐格式转换器免费版)
-
有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...
- 电子书txt下载(免费的最全的小说阅读器)
-
1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...
- 最好免费观看高清电影(播放免费的最好看的电影)
-
在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...
- 孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)
-
要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
win7系统还原步骤图解(win7还原电脑系统的步骤)
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
16949认证费用是多少(16949审核员太难考了)
-
linux软件(linux软件图标)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
windows7旗舰版多少钱(win7旗舰版要多少钱)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
