Flaskz-admin是基于 Flaskz 的管理系统开发模板,提供了基础的代码框架和文件目录, 可用于快速搭建系统开发框架和进行业务模块的开发
- ☞数据库初始化&常用函数
- ☞数据模型扩展类
- ☞API封装、访问权限控制和系统日志
- ☞常用函数
- ☞基于Flaskz的管理系统开发模板 Flaskz-admin (Hello World*)
- ☞使用手册
- ☞开发规范
- 修改系统配置参数config.py
SECRET_KEY
- 应用安全密钥(用于保持客户端会话的安全,应该足够复杂&难以猜测)FLASKZ_DATABASE_URI
- 数据库地址(默认为./_sqlite/flaskz-admin.db
)
- 修改alembic配置参数alembic.ini
sqlalchemy.url
- 数据库地址(默认为./_sqlite/flaskz-admin.db
)
- 安装requirements依赖 -
pip install -r requirements.txt
- cli初始化数据库(
_sqlite/flaskz-admin.db
已经完成初始化) - 启动应用
- 设置Flask环境变量 -
export FLASK_APP=admin_app.py
- 启动Flask应用 -
flask run --host=0.0.0.0 --port=666
- 查看Flask进程 -
ps aux | grep 'python.*flask run'
- 停止Flask应用 -
pkill -f "python.*flask run"
- 设置Flask环境变量 -
- 访问
- 地址: http://127.0.0.1:666
- 账号/密码: admin/admin
- _doc: 系统文档
- flaskz-admin.postman_collection.json: API Postman文件
- sys-mgmt.md: 系统权限设计&License功能介绍
- alembic.md: alembic常用命令
- _sqlite: sqlite数据库文件目录(按需使用)
- _syslog: 系统日志存放目录
- app: 主应用目录
- _ext: 扩展功能目录(按需使用)
- ncs: NCS功能扩展
- redis_ws: Redis+Websocket功能扩展
- api: API目录,存放应用所有api封装
- app_page: 前端页面静态文件目录(基于focus-ui),也可通过nginx等代理软件实现文件服务功能(按需使用)
- main: 页面服务和应用异常处理目录
- errors.py: 应用异常处理
- page.py: 页面服务
- modules: 系统模块/数据模型类封装目录
- sys_init: 应用初始化目录
- status_codes.py: 系统状态码&国际化
- sys_mgmt: 默认提供的基于角色的权限控制功能目录(按需使用)
- license: license功能目录
- _init_db.py: 系统数据初始化(模块+角色+权限)
- auth.py: 系统校验(登录+权限检查)
- _private.py: 内部/私有功能(查看系统日志/查看系统路由)
- utils: 系统工具类目录
- __init.py: 应用创建和初始化
- _ext: 扩展功能目录(按需使用)
- migrations: alembic数据库迁移目录,用于存放数据库迁移文件,按需使用
- versions: 数据库迁移版本目录
- alembic.ini: alembic配置文件
- tests: 测试目录(单元测试/性能测试)
- admin_app.py: 应用程序主入口
- cli.py: 命令行工具,可用于数据初始化等
flask admin db help
- config.py: 系统配置(for 开发)
- config.ini: 系统配置文件(for 运维),可省略,config.ini中属性的优先级>config.py中定义的属性
- requirements.txt: 依赖lib列表
pip install -r requirements.txt
Email: [email protected] / [email protected]
- 2.1.2
2024/06/01
- [A] 添加
SysOption
功能模块,用于管理系统选项 - [A]
SysUserOption
用户选项添加locale
设置,用于设置区域/语言 - [A] 添加
SysRole
和SysUser
对象编辑和删除检查,以确保系统中始终有管理权限的用户 - [F] 修复编辑
SysRole
时,updated_at
不更新问题 - [C] 资源不存在时(404 page/uri_not_found)的响应状态码,由
200
修改为404
- [A] 添加
- 2.1.1
2024/05/01
- [A]
config.py
添加配置项APP_PAGE_MAPPING
用于设置页面映射APP_LICENSE_LOAD_INTERVAL
用于设置License加载间隔APP_LICENSE_OS_TIME_BACKWARD_LIMIT
用于设置操作系统时间允许向后改变的最大值
- [A]
LicenseManager
添加对操作系统时间的检测 - [C] 添加
_cli
目录,用于存放cli
相关功能代码(按需使用) - [C] 添加
app.utils._utils
目录,用于存放通用工具类(按需使用) - [C] 前端页面重新登录改成弹框模式
- [A]
- 2.1.0
2024/02/01
- [A] 页面国际化(登录/系统导航/系统管理)
- 2.0.1
2024/01/01
- [C] 移除License相关的操作日志和查询结果中的
Signature/license
等信息 - [F]
LicenseManager.get_license()
方法返回的license信息改为拷贝模式(避免被修改)
- [C] 移除License相关的操作日志和查询结果中的
- 2.0.0
2023/12/01
- [A]
app._ext.redis_ws
添加对Redis哨兵模式url的支持 - [A] 添加Token刷新功能,
APP_REFRESH_TOKEN_EXPIRES_IN
配置项用于设置refresh token的有效时间
- [A]
- 1.6
2023/06/16
- [F] 修复
app._ext.redis_ws.init_websocket
函数中app_config设置问题 -2023/07/10
- [A]
alembic.inc
添加ignore_tables
配置项,用于配置不需要alembic维护的table列表 -2023/07/10
- [A] 添加
example
示例 -2023/07/11
- [A] 添加
SysUserOption
表,用于存放用户选项(登录时间/登录次数/...) -2023/07/20
- [F] 修复
Action Logs
模块前端页面过滤问题 -2023/08/23
- [A] 添加
FLASKZ_DATABASE_SESSION_KWARGS = {'expire_on_commit': False}
配置 -2023/09/01
- [A]
app._ext.redis_ws
添加对redis哨兵模式的支持 -2023/09/01
- [A]
log_operation
对于用户添加/更新操作移除password
-2023/09/15
- [C]
SysUser.email
移除nullable=False
属性(for AAA) -2023/09/18
- [F]
SysUser.verify_password
方法添加password
为None的逻辑判断 -2023/09/18
- [A]
app._ext
添加auth
扩展,用于第三方授权认证,并添加TACACS
授权认证实现 -2023/09/20
- [A]
alembic.inc
添加echo
配置项,用于配置是否启用Alembic的echo功能 -2023/09/21
- [A]
config.py
和config.ini
添加UnittestConfig
配置项,用于单元测试 -2023/09/27
- [A]
tests
添加perf
和unit
测试项,用于性能和单元测试 -2023/09/27
- [A]
app._ext
添加swagger
扩展,用于生成Swagger文档 -2023/10/26
- [F] 修复
- 1.5
2023/05/01