需求:装三台液晶电视,用于展示各级部每天的日常检查评比结果。
任务:将各年级上传的xlsx文件,动态发布到网站,电视定时刷新访问。
分析:几乎无并发,只涉及几台机器联网,适合最轻量级的方案。
方向:用轻量Web框架,接受用户上传表格,然后转网页展示。
实现Excel转网页
其实这一 步,可以用直接另存为的方式实现。但是微软生成的这个htm文件里面全是JS,纷繁芜杂,不利于二次修改和补充。理想的情况是,用html里面的table标签来生成。经过网络检索,我们选择用著名的pandas模块(依赖xlrd模块)来自动生成。
![7f4ca31503872a02d78e3da51eda81fd.png](https://img-blog.csdnimg.cn/img_convert/7f4ca31503872a02d78e3da51eda81fd.png)
以上代码其实就是文件读写,最终我们是要往out文件夹写html文件,过程是分块拼起来的。
- 先写入头部的固定部分: 指定编码、定时刷新、表格样式控制
- 再写中间合并过的部分:通过替换部分表头解决pandas无单元格合并问题
- 后写网页底自定义部分:添加一点个性化文字的东西
html头、样式部分
![9666a6cf50fcc9991713ea18ffd6c442.png](https://img-blog.csdnimg.cn/img_convert/9666a6cf50fcc9991713ea18ffd6c442.png)
替换合并单元格部分
![571dd3c4e21f4594ba83a7d58ff8c772.png](https://img-blog.csdnimg.cn/img_convert/571dd3c4e21f4594ba83a7d58ff8c772.png)
实现Web响应
既然都用Python来做了,就怎么省时省力怎么来,毕竟是义务劳动。早点忙完了这个活,然后,就可以:
开始忙下个活了……
所以直接上框架,Flask这样的轻量级框架走起,不过今天找到一个更轻量级的框架,写几句代码,就能实现Web交互-bottle。
这货居然就一个py文件,所以你可以pip安装,也可以直接import这个bottle.py。用它的files.get方法就可以拿到用户提交,写python跑功能,最后把结果返回给用户了。
这种框架的好处是,不需要配置Tomcat、IIS这样的Web服务器,写出来的server.py本身,即能响应用户,部署起来飞快。
代码其实我基本是从CSDN照扒的,贴下出处:https://bbs.csdn.net/topics/392190705
![f2d9b2970bfcc2a5c8800911065d1a84.png](https://img-blog.csdnimg.cn/img_convert/f2d9b2970bfcc2a5c8800911065d1a84.png)
![4ccefbd22ab9e24b5795175969b65d45.png](https://img-blog.csdnimg.cn/img_convert/4ccefbd22ab9e24b5795175969b65d45.png)
最后这里比较关键,实现任意电脑可以访问本机的89端口打开站点。
最终运行效果如下:
服务器
![6c6fa14427c8d22ae9d450cbde3eafb4.png](https://img-blog.csdnimg.cn/img_convert/6c6fa14427c8d22ae9d450cbde3eafb4.png)
自管会上传界面
![6bf4156fa32fdb38937971d939807180.png](https://img-blog.csdnimg.cn/img_convert/6bf4156fa32fdb38937971d939807180.png)
![4d22c72dab5e51702e8b5a43630a5f15.png](https://img-blog.csdnimg.cn/img_convert/4d22c72dab5e51702e8b5a43630a5f15.png)
电视刷新展示界面
![237588c4afeb5106b121bcd7f4b1706d.png](https://img-blog.csdnimg.cn/img_convert/237588c4afeb5106b121bcd7f4b1706d.png)
以上就是本次问题解决的过程,还是走了一些弯路,大概耗时2h。
总结一下经验,也做为将来课堂上程序教学的培养方向:
- 效率优先:尽量设计简单高效的步骤,读入数据库就是舍近求远。
- 知识检索:先学习,再改进,就是新课标倡导的数字化学习与创新。
- 夯实基础:更多精力解决新问题,而非文件读写、字符串替换等基础。
更多技术文章,请关注:
![326a243ae85f8785e2c046cf5eb0ade2.png](https://img-blog.csdnimg.cn/img_convert/326a243ae85f8785e2c046cf5eb0ade2.png)