近期在工作中需要维护若干个信息表,在这个过程中需要经常对表格进行操作、交叉操作、各个表格同步,和某平台信息同步。。。在此过程中需要建立一个“隐性”的流程,要第一步同步A和B,再同步B和C,。。。而检索更是痛苦,更夸张的是,有时候需要根据不同的需求,将表格的某一些部分拷贝出来。。。
这可能是一个数据库(甚至是数据系统)的操作,不可否认可以通过其它N个方案实现,但是为了满足笔者这种web前后端菜鸟学习的欲望,还是发现了这个小小的项目,在里面找到一个相对比较简单和功能丰富的示例完成这个需求。
需求:
- 基本操作:要即时更新,删除,增加,修改记录;
- 要可以对表格进行任意搜索;
- 通过根据选择导出表格为Excel;
- 几个表格之间能够实现联结搜索;
安装
该项目来自https://github.com/flask-admin/flask-admin.git。
首先下载该项目:
git clone https://github.com/flask-admin/flask-admin.git
cd flask-admin
然后在VS Code里打开下载到的项目目录,接下来需要创建一个虚拟环境。笔者现在用的是Python3.11版本,创建虚拟环境用的是venv命令。在VS Code里打开终端—新建终端,输入以下命令,表示在当前项目下(flask-admin)创建一个名为flask_admin_venu的虚拟环境。
python -m venv .\flask_admin_venu
接下来激活这个虚拟环境。
.\flask_admin_venu\Scripts\activate
这时候你的目录前面会出现。
(flask_admin_venu) PS E:....
这样可以在这个虚拟环境下,安装该项目必须的一些包。在这里为了实现这个需求,选择的是examples\custom-layout目录下的这个子项目。首先安装这个项目需要的一些必须安装包。
cd .\examples\custom-layout\
pip install -r .\requirements.txt
然后是经过1,2分钟的安装过程,一堆的package会补充安装到虚拟环境里。
Collecting Flask
Downloading Flask-2.2.2-py3-none-any.whl (101 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.5/101.5 kB 729.9 kB/s eta 0:00:00
Collecting Flask-Admin
Downloading Flask-Admin-1.6.0.tar.gz (6.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.6/6.6 MB 5.6 MB/s eta 0:00:00
Preparing metadata (setup.py) ... done
Collecting Flask-SQLAlchemy
Downloading Flask_SQLAlchemy-3.0.2-py3-none-any.whl (24 kB)
Collecting Werkzeug>=2.2.2
Downloading Werkzeug-2.2.2-py3-none-any.whl (232 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 232.7/232.7 kB 13.9 MB/s eta 0:00:00
Collecting Jinja2>=3.0
Downloading Jinja2-3.1.2-py3-none-any.whl (133 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.1/133.1 kB 7.7 MB/s eta 0:00:00
Collecting itsdangerous>=2.0
Downloading itsdangerous-2.1.2-py3-none-any.whl (15 kB)
Collecting click>=8.0
Downloading click-8.1.3-py3-none-any.whl (96 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.6/96.6 kB 1.8 MB/s eta 0:00:00
Collecting wtforms
Downloading WTForms-3.0.1-py3-none-any.whl (136 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 136.5/136.5 kB 4.1 MB/s eta 0:00:00
Collecting SQLAlchemy>=1.4.18
Downloading SQLAlchemy-1.4.44-cp311-cp311-win_amd64.whl (1.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 7.7 MB/s eta 0:00:00
Collecting colorama
Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Collecting MarkupSafe>=2.0
Downloading MarkupSafe-2.1.1.tar.gz (18 kB)
Preparing metadata (setup.py) ... done
Collecting greenlet!=0.4.17
Downloading greenlet-2.0.1-cp311-cp311-win_amd64.whl (191 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 191.2/191.2 kB 11.3 MB/s eta 0:00:00
Installing collected packages: MarkupSafe, itsdangerous, greenlet, colorama, wtforms, Werkzeug, SQLAlchemy, Jinja2, click, Flask, Flask-SQLAlchemy, Flask-Admin
DEPRECATION: MarkupSafe is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559
Running setup.py install for MarkupSafe ... done
DEPRECATION: Flask-Admin is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559
Running setup.py install for Flask-Admin ... done
Successfully installed Flask-2.2.2 Flask-Admin-1.6.0 Flask-SQLAlchemy-3.0.2 Jinja2-3.1.2 MarkupSafe-2.1.1 SQLAlchemy-1.4.44 Werkzeug-2.2.2 click-8.1.3 colorama-0.4.6 greenlet-2.0.1 itsdangerous-2.1.2 wtforms-3.0.1
[notice] A new release of pip available: 22.3 -> 22.3.1
[notice] To update, run: python.exe -m pip install --upgrade pip
请注意中间有两个警告,因为新版本的处理策略,其中两个的安装方法被强制改变了。另外也要注意最后这句,是要求将pip升级到最新版本,只需要复制这句命令运行一下即可。
python.exe -m pip install --upgrade pip
Requirement already satisfied: pip in e:\003_programlanguage\flask-admin\flask_admin_venu\lib\site-packages (22.3)
Collecting pip
Using cached pip-22.3.1-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 22.3
Uninstalling pip-22.3:
Successfully uninstalled pip-22.3
Successfully installed pip-22.3.1
现在我们在VS Code中打开,examples\custom-layout\app.py,这个文件。现在点击Run来运行它,初次运行,除了会初始化数据库,同时在终端窗口,也会出现这句话:
* Running on http://127.0.0.1:5000
这表示服务启动成功了,我们打开一个浏览器,输入这个网址:http://127.0.0.1:5000,这表示启动成功,打开了这个web的首页。它的admin页如下图第二幅。