来源:Python大数据分析 费弗里
大家好我是费老师,今天要给大家分享的项目是完全基于Python
编写的「待办事项」应用,
之所以可以完全基于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 应用开发重点思路
作为一个典型的轻量Dash
应用,因为功能足够简单,所以项目结构非常简单:
-
assets
目录存放静态资源,即本应用中的应用图标图片 -
app.py
中完成整个应用逻辑代码的编写
在这个应用中,因为存在着不确定数目的待办事项的「增加」、「更新」及「修改」,因此我们采用了直观简单清晰的「数据状态驱动组件更新-交互操作更新数据状态」的思想,源码中的Store()
组件就负责保存及更新待办事项的实时状态:
并且在这个应用中,我们在很多使用到set_props()
来更「灵活」的更新组件属性,使得我们可以在多个回调函数中省略对数据状态的Output
编排,譬如在处理待办事项删除操作的delete_todo()
回调函数中:
除了上述的思想外,这个应用中还使用到ALL
模式匹配回调等Dash
应用中非常经典的方法,从而轻松实现各种交互逻辑,因此这个项目可以作为深入学习Dash
应用中一些进阶方法的示范项目。