添加微信号CNFeffery
备注“dash学习”
即刻加入dash
应用开发技术交流群
大家好我是费老师,今天要给大家分享的项目是完全基于Python
编写的「个人考勤管理」应用,首先来看一下其主要功能的操作演示视频(玩转dash公众号后台回复「考勤」可直接获取该项目完整源码下载地址):
之所以可以完全基于Python
轻松开发出这个应用,要归功于Python
生态中非常强大的网页应用开发框架Dash
,以及其相关生态中的fac
(官网地址:https://fac.feffery.tech/ )等组件库,使得我们可以轻松调用不同的功能组件,并编写相应的回调函数来实现各种用户交互反馈功能:
下面我们对这个应用实现的主要过程做简短介绍,具体技术细节欢迎扫描「文章末尾二维码」,即刻加入Dash技术学习交流群一起交流:
1 启动应用
首先,按照「文章开头提示」下载好本项目完整源码解压后,在项目根目录打开终端,激活你的Python
环境,接着执行pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
,完成当前项目依赖库的安装。
然后直接在终端执行python app.py
即可启动应用,按照控制台提示的信息,浏览器访问本地http://127.0.0.1:8050
地址即可使用到应用:
2 应用主要功能
该应用案例虽然简单,但是对很多考勤数据管理常用功能都进行了实现,主要有:
2.1 自定义考勤周期
应用中可自由控制考勤展示周期的起始日:
从而控制与当前周期范围相关的数据展示等内容的更新:
2.2 考勤周期切换
通过日历右上方的周期切换按钮,可自由切换至其他周期范围:
2.3 日期考勤记录交互编辑
针对日历中展示的各个日期,直接点击日期单元格,即可触发对应的数据编辑面板:
在日期数据编辑面板中,可灵活选择日期类型,进行相关数据的填写保存:
2.4 日历展示内容动态变化
随着用户所编辑考勤数据的更新,日历中相应的也会动态展示不同的状态:
2.5 周期内考勤数据统计
日历下方区域会随着考勤数据的变化,而动态计算当前周期内的相关统计结果:
2.6 数据自动缓存
该应用中,考勤数据的缓存是自带持久化特性的,因此即使刷新了页面,数据依然不会丢失:
且应用还配备了带有「二次确认」的清空数据功能:
3 应用开发重点思路
作为一个轻量的Dash
应用,其项目结构非常简单:
assets
目录存放静态资源,即本应用中的应用图标图片等文件app.py
中构建了应用的页面内容以及交互逻辑
为了方便演示,本应用案例利用了Store()
组件,并设置参数storage_type="local"
,从而实现了数据的快捷持久化保存,并基于表格组件AntdTable
,来自定义渲染可交互的日历,其中农历数据的部分使用到了Python
库lunar_python
:
因为是基于Python
中的Dash
框架进行开发,因此该应用的实现过程全部使用Python
编写,无需学习复杂的javascript
等语言,在此应用基础上进行二次开发非常轻松,譬如开发数据导出功能等。
更多有关此应用的技术细节,欢迎添加微信号CNFeffery
备注「dash学习」,即刻加入技术交流群一起学习讨论。
更多Dash
应用开发干货内容,欢迎持续关注我们❤️。
扫描下方二维码加我好友备注dash学习
即刻加入dash
应用开发技术交流群
点击下方卡片加入玩转Dash
知识星球
用最专业最高效的方式搞定Dash应用开发