Skip to content

Flaskz-admin是基于Flaskz的管理系统开发模板,提供了基础的代码框架和文件目录, 可用于快速搭建系统开发框架和进行业务模块的开发

Notifications You must be signed in to change notification settings

taozh1982/flaskz-admin

Repository files navigation

关于

Flaskz-admin是基于 Flaskz 的管理系统开发模板,提供了基础的代码框架和文件目录, 可用于快速搭建系统开发框架和进行业务模块的开发

使用

  1. ☞数据库初始化&常用函数
  2. ☞数据模型扩展类
  3. ☞API封装、访问权限控制和系统日志
  4. ☞常用函数
  5. ☞基于Flaskz的管理系统开发模板 Flaskz-admin (Hello World*)
  6. ☞使用手册
  7. ☞开发规范

快速入门

  1. 修改系统配置参数config.py
    • SECRET_KEY - 应用安全密钥(用于保持客户端会话的安全,应该足够复杂&难以猜测)
    • FLASKZ_DATABASE_URI - 数据库地址(默认为./_sqlite/flaskz-admin.db)
  2. 修改alembic配置参数alembic.ini
    • sqlalchemy.url - 数据库地址(默认为./_sqlite/flaskz-admin.db)
  3. 安装requirements依赖 - pip install -r requirements.txt
  4. cli初始化数据库(_sqlite/flaskz-admin.db已经完成初始化)
    1. 设置cli环境变量
      • export FLASK_APP=admin_app.py # Mac/Linux
      • set FLASK_APP=admin_app.py # Windows
    2. 初始化数据库表 - flask admin db upgrade # password:taozh
    3. 初始化数据库数据 -flask admin db init # password:taozh
  5. 启动应用
    1. 设置Flask环境变量 - export FLASK_APP=admin_app.py
    2. 启动Flask应用 - flask run --host=0.0.0.0 --port=666
    3. 查看Flask进程 - ps aux | grep 'python.*flask run'
    4. 停止Flask应用 - pkill -f "python.*flask run"
  6. 访问

文件&目录

  • _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: 应用创建和初始化
  • 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] 添加SysRoleSysUser对象编辑和删除检查,以确保系统中始终有管理权限的用户
    • [F] 修复编辑SysRole时,updated_at不更新问题
    • [C] 资源不存在时(404 page/uri_not_found)的响应状态码,由200修改为404
  • 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] 前端页面重新登录改成弹框模式
  • 2.1.0 2024/02/01
    • [A] 页面国际化(登录/系统导航/系统管理)
  • 2.0.1 2024/01/01
    • [C] 移除License相关的操作日志和查询结果中的Signature/license等信息
    • [F] LicenseManager.get_license()方法返回的license信息改为拷贝模式(避免被修改)
  • 2.0.0 2023/12/01
    • [A] app._ext.redis_ws添加对Redis哨兵模式url的支持
    • [A] 添加Token刷新功能,APP_REFRESH_TOKEN_EXPIRES_IN配置项用于设置refresh token的有效时间
  • 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.pyconfig.ini 添加UnittestConfig配置项,用于单元测试 -2023/09/27
    • [A] tests添加perfunit测试项,用于性能和单元测试 -2023/09/27
    • [A] app._ext添加swagger扩展,用于生成Swagger文档 -2023/10/26
  • 1.5 2023/05/01

About

Flaskz-admin是基于Flaskz的管理系统开发模板,提供了基础的代码框架和文件目录, 可用于快速搭建系统开发框架和进行业务模块的开发

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published