您可能感兴趣的话题:
Python
核心提示: 这篇文章主要介绍了举例讲解Python的Tornado框架实现数据可视化的教程。
这篇文章主要介绍了举例讲解Python的Tornado框架实现数据可视化的教程,Tornado是一个异步的高人气开发框架,需要的朋友可以参考下 所用拓展模块 xlrd: Python语言中,读取Excel的扩展工具。可以实现指定表单、指定单元格的读取。 使用前须安装。 下载地址:https://pypi.python.org/pypi/xlrd 解压后cd到解压目录,执行
python setup.py install
即可 datetime: Python内置用于操作日期时间的模块 拟实现功能模块 读xls文件并录入数据库 根据年、月、日三个参数获取当天的值班情况 饼状图(当天完成值班任务人数/当天未完成值班任务人数) 瀑布图(当天所有值班人员的值班情况) 根据年、月两个参数获取当月的值班情况 根据年参数获取当年的值班情况 值班制度 每天一共有6班: 8:00
- 9:45 9:45 - 11:20 13:30 - 15:10 15:10 - 17:00 17:00 - 18:35 19:00 -
22:00 每个人每天最多值一班。 仅值班时间及前后半个小时内打卡有效。 上班、下班均须打卡,缺打卡则视为未值班。 分析Excel表格 我的指纹考勤机可以一次导出最多一个月的打卡记录。有一个问题是,这一个月可能横跨两个月,也可能横跨一年。比如:2015年03月21日-2015年04月20日、2014年12月15日-2015年01月05日。所以写处理方法的时候一定要注意这个坑。 导出的表格如图所示:
=。=看起来好像基本没人值班,对,就是这样。 大家都好懒T。T Sign... 简单分析一下, 考勤记录表是文件的第三个sheet 第三行有起止时间 第四行是所有日期的数字 接下来每两行:第一行为用户信息;第二行为考勤记录 思路 决定用3个collection分别储存相关信息: user:用户信息,包含id、name、dept record:考勤记录,包含id(用户id)、y(年)、m(月)、d(日)、check(打卡记录) duty:值班安排,包含id(星期数,例:1表示星期一)、list(值班人员id列表)、user_id:["start_time","end_time"](用户值班开始时间和结束时间) 读取xls文件,将新的考勤记录和新的用户存入数据库。 根据年月日参数查询对应record,查询当天的值班安排,匹配获得当天值班同学的考勤记录。将值班同学的打卡时间和值班时间比对,判断是否正常打卡,计算实际值班时长、实际值班百分比。 之后输出json格式数据,用echarts生成图表。 分析当月、当年的考勤记录同理,不过可能稍微复杂一些。 所有的讲解和具体思路都放在源码注释里,请继续往下看源码吧~ 源码 main.py ?