作者: 清香客
来源:Python/ target=_blank class=infotextkey>Python 技术
相信很多学习python的酱友们,大部分和我一样是为了提升工作效率,但是在提升自己的工作效率时,也会想着做同样工作的同事能不能也用上自己写的脚本(视工作环境而定)。
但是对于没有接触过编程的同事来说,环境的搭建就会让人崩溃,更别说是不同的电脑系统了。可是怎么做才能方便、快速的让同事也能用呢?我想来想去,还是搭建一个网站是最方便的,直接浏览器打开就可以用。网上查了查python的web框架很多,但是学习成本很高(要涉及前端、后端和css知识),学习时间会很长,让新手望而却步。
终于功夫不负有心人,让我找到一个快速搭建网站的python库pywebio,这个框架可以方便的和flask、Django等web框架结合,一些简单的收集表什么的用它很方便、快捷,而且它的代码和python很相似,学习成本也很低。
pywebio很方便的就可以创建一个网站(用本机也行,云端服务器也行),启动之后就可以直接用浏览器浏览了。如图是我自己写的一个简易的网站,只是自己和同事用的,可以快速处理业务,提升我们的效率,利人利已。而且搭建的时间很短,从学习到搭建,一天我就搭建好了(大佬们应该只要一小时不到就能搭建好),剩下的只是完善功能的时间了。
是不是看着有点简陋,没有华丽的界面。因为pywebio是自动排版的,也不需要你去涉及前后端的知识,我们要的是实用的功能,酱友们就不要纠结排版什么的了,毕竟好用才是真理。
同时酱友们可也以打开我的网站去看看(我的网站),除了第一个选项,后面的选项都可以操作看看 ,因为第一个需要登录才可以操作,可以让你们看看第一个选项里面的功能列表(左上角有显示请求成功)。
pip install pywebio
安装之后会有版本的提示,因为我已经安装过了,会有一些不同
from pywebio import start_serverfrom pywebio.input import *from pywebio.output import *from pywebio.pin import *from pywebio.session import *
start_server是用来启动服务器的
input是输入的模块组,输入的功能在这个里面
output是输出的模块组,输出的功能在这个里面
pin是一个持续输入的功能模块,因为pywebio是一个阻塞式的输入,所以需要持续输入的时候需要用pin函数来实现,官方文档里是这样说的:
个人理解:酱友们在学习的时候可以先把一些教程的代码复制过来,然后通过一系列的修改,把它改成自己能理解的形式,这样可以吃透代码的各个功能,有助于学习。
session这个函数是一个会话功能
img用来存储图标文件,再用put_image输出到网页上,如下图:
刚开始写的时候,没有写更新日志什么的,后来感觉写个有助于自己记一些东西,就后来加上了,我直接加在了LOGO的下面。
put_collapse是一个可以折叠的文本显示函数,用with循环读取,可以折叠起来,省下屏幕空间,用的时候再展开。
注意看:红框里的列表和下面的if选项是对应的。
列表对应好之后就是具体的功能实现了。
file_upload上传文件和put_file下载文件功能
put_text单文本输出函数
input输入函数
put_processbar、set_processbar进度条函数
put_processbar、set_processbar这两个是一对,上面用来标记进度条的位置,下面用来输出进度条的进度,在这里提醒一下需要注意的地方,进度条命名的时候最好不要和同功能的进度条命名一样,要不然会造成进度条的混乱,会出现好多进度条或者是就出现同一个。还有就是进度条设置成自动消失,必须要到头了才会消失,要不然不会消失(别问我怎么知道,踩好多坑了)所以设置进度条的动态数值的时候最好是设置的大一点。
start_server(mAIn, port=8088, debug=False, auto_open_webbrowser=False)
第一个参数是要运行的主函数,port是网站端口,可以自己设置;后面的可以省略
debug是调试用的,设置为True的时候,只要你改动了代码,保存的时候会自动重启服务器
auto_open_webbrowser是自动打开浏览器,设置为True,启动服务器就自动用浏览器打开这个网址了
酱友们可能会问:你介绍了这么多,也没说怎么用啊?那是因为官方文档写的很详细,还有代码示例,酱友们可以自己去看一下(可能比我理解的更透彻哟)。官方文档:
左上角红框那里还可以搜索自己想要了解的功能,几乎是全中文的哟。
这里有个注意点:pywebio有个明显的缺点是没有返回上一页的功能,也可能是我能力不够,没有找到。当然也可以自己去写一个返回上一页的功能,我感觉直接用跳出循环来达到目的(已经测试过,用按钮循环的可以跳出,列表循环的就不能跳出),酱友们有好的方法可以留言或加入交流群讨论呀。
好了,今天的文章就写到这了,怎么样?是不是很方便、快捷?