Skip to content

Flaskz 是Flask和SQLAlchemy ORM的功能扩展,主要用于web应用的开发,可以快速灵活的实现各种业务场景和提供API。

License

Notifications You must be signed in to change notification settings

taozh1982/flaskz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 

Repository files navigation

关于

FlaskzFlaskSQLAlchemy ORM的扩展工具集, 主要用于web应用的开发, 可以快速灵活的实现各种业务场景并提供API。

使用

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

版本

  • 1.8.0 2024/06/01
    • [A] 扩展flaskz.rest路由生成模块
      • 添加register_model_bulk_route函数, 用于生成指定数据模型的批量增删改路由
      • 添加register_model_bulk_add_route函数, 用于生成指定数据模型的批量添加路由
      • 添加register_model_bulk_delete_route函数, 用于生成指定数据模型的批量删除路由
      • 添加register_model_bulk_update_route函数, 用于生成指定数据模型的批量更新路由
    • [A] 添加flaskz.utils.request函数(替代flaskz.utils.api_request函数)
    • [A] 添加flaskz.utils.json_dumps函数以序列化对象为JSON字符串
    • [F] 修复flaskz.ext.ssh.SSH_pre_commands_run的未赋值问题
  • 1.7.3 2024/05/01
    • [C] flaskz.utils.ins_to_dict函数返回的dict中包含值为None的键值
    • [A] BaseModelMixin.to_dict方法的option参数添加relationships选项,用于自定义是否查询关联关系
    • [A] FLASKZ_DATABASE_SESSION_KWARGS配置参数添加reusable_in_flask_g选项, 用于设置是否在flask.g中缓存&复用session对象(默认复用)
    • [C] flaskz.ext.ssh返回值保留文本两侧的空格
    • [A] flaskz.ext.ssh.SSH添加pre_commands参数, 用于在命令执行之前预先执行控制相关命令
  • 1.7.2 2024/02/01
    • [A] flaskz.models.parse_pss函数支持like_columns参数, 用于定义模糊查询列(默认使用模型类的like_columns)
    • [A] flaskz.utils.api_request函数添加http_kwargs参数,用于设置http请求参数
  • 1.7.1 2024/01/05
    • [F] 修复SQLAlchemy<2.0.0版本时, flaskz.models._util.pyBinaryExpression类的导入问题
  • 1.7.0 2024/01/01
    • [C] SQLAlchemy依赖的版本从>=1.3.13(EOL)升级到>=1.4.0(Maintenance)
    • [A] BaseModelMixin.query_pss方法支持relationship的查询和排序
    • [A] flaskz.models.parse_pss函数支持relationship的查询和排序参数解析
  • 1.6.4 2023/12/01
    • [A] BaseModelMixin添加refresh方法, 用于更新当前模型对象
    • [A] 添加flaskz.models.refresh_instance函数, 用于更新模型对象/列表
    • [A] model_to_dict函数的option参数添加filter选项, 用于过滤模型对象列表
    • [A] flaskz.rest.register_model_query_pss_route路由生成函数添加get_pss_config参数, 用于自定义pss查询参数
    • [A] flaskz.ext.ssh添加ssh_run_commandssh_run_command_list函数
    • [A] flaskz.ext.ssh.SSH添加connect_kwargschannel_kwargs参数以自定义connect和channel参数
    • [A] flaskz.ext.ssh.SSH设置timeout参数的默认值为10
  • 1.6.3 2023/09/01
    • [A] 添加FLASKZ_DATABASE_SESSION_KWARGS配置参数, 用于自定义DBSession参数
    • [C] BaseModelMixin.add_dbBaseModelMixin.update_db方法添加refresh操作, 以返回跟数据库同步的instance对象
    • [A] flaskz.rest.register_model_*路由生成函数添加路由endpoint参数
  • 1.6.2 2023/07/06
    • [F] 修复flaskz.utils._request_args.pyimport parse_pss as get_pss的导入问题
  • 1.6.1 2023/07/01
    • [C] flaskz.utils.get_pss(flaskz.models.parse_pss)函数返回项由SQL字符串拼接改为参数化模式以预防SQL注入
    • [A] 添加flaskz.utils.run_at函数用于执行定时函数
  • 1.6 2023/06/16
    • [A] BaseModelMixin添加count方法, 用于数量查询(全量/条件)
    • [A] BaseModelMixin添加clear_db方法, 用于清空数据
    • [A] BaseModelMixin.query_pss方法支持GROUP BY分组
    • [A] flaskz.ext.ssh添加对Paramiko>=3.0.0版本的支持
    • [A] flaskz.ext.ssh.SSH添加secondary_passwordrecv_endswith参数
  • 1.5.3 2023/06/01
    • [F] flaskz.utils.api_request函数的url_params参数仅用于url中的{变量}替换而不添加查询字符串
    • [A] flaskz.utils.api_request函数添加url_search_params参数用于添加url查询字符串
  • 1.5.2 2023/05/17
    • [C] db_session上下文管理器自动关闭非缓存session
    • [F] 修复BaseModelMixin.get_query_default_order默认排序在query_pss方法中不起作用的问题
  • 1.5 2023/05/01
    • [A] 扩展flaskz.rest路由生成模块
      • 添加register_model_route函数, 可用于生成指定数据模型的CRUD等路由
      • 添加register_model_add_route函数, 可用于生成指定数据模型的添加路由
      • 添加register_model_delete_route函数, 可用于生成指定数据模型的删除路由
      • 添加register_model_update_route函数, 可用于生成指定数据模型的更新路由
      • 添加register_model_upsert_route函数, 可用于生成指定数据模型的添加/更新路由
      • 添加register_model_query_route函数, 可用于生成指定数据模型的全量查询路由
      • 添加register_model_query_pss_route函数, 可用于生成指定数据模型的条件查询(分页+搜索+排序)路由
      • 添加register_models_query_route函数, 可用于生成多个数据模型的全量查询路由
    • [A] ModelMixin.query_pss方法支持多列排序
    • [A] flaskz.models.init_modelflaskz.log.init_log函数添加对Class类型参数的支持
    • [A] BaseModelMixin.delete_db方法添加对dict类型参数的支持
    • [A] flaskz.utils添加cls_to_dict函数, 用于生成类属性的dict对象
    • [C] BaseModelMixin.bulk_delete方法会删除符合条件的所有数据(此前版本只删除第一个)
  • 1.3.1 2023/03/02
    • [C] init_model_rest_blueprint函数生成的路由, 移除参数path类型转换, 以解决Flask<2.2.3版本不会将结尾不带/的请求重定向到带/路由的问题
  • 1.3 2023/03/01
    • [A] init_model_rest_blueprint函数生成的query路由, 添加对单个数据的查询功能([GET]url_prefix/did/)
    • [A] init_model_rest_blueprint函数生成的update路由, 添加URL主键支持([PATCH]url_prefix/did/)
    • [C] init_model_rest_blueprint函数生成的delete路由, 结尾添加/, 用于支持以/结尾的URL删除请求([DELETE]url_prefix/did/)
    • [A] 添加FLASKZ_DATABASE_ENGINE_KWARGS参数, 用于自定义engine参数
  • 1.2 2023/02/01
    • [A] 添加FLASKZ_DATABASE_POOL_PRE_PING参数, 用于设置engine的pool_pre_ping参数
    • [A] init_model函数添加数据库连接异常处理和重新连接
    • [C] init_model_rest_blueprint函数生成的删除路由URL中的id参数添加path类型转换(v1.3.1已移除)
  • 1.1 2023/01/01
    • [F] 修复BaseModelMixinupdate_dbdelete_db方法在非Flask应用或没有Flask应用上下文时的操作失败问题
  • 1.0 2022/12/01
    • [A] 添加flaskz.utils.set_timeoutflaskz.utils.set_interval函数用于延迟和周期性函数执行
    • [A] flaskz.ext.ssh.SSH添加timeout参数以设置超时时间(登录&命令执行)
    • [F] 修复BaseModelMixin.bulk_delete方法因某条数据删除失败导致的操作中断和部分删除问题
  • 0.9 2022/10/01
    • [A] 添加flaskz.auth包, 提供了JWS授权功能
    • [A] 添加flaskz.ext.ssh, 提供了ssh相关功能(pip install paramiko)
  • 0.8 2022/08/01
    • [A] BaseModelMixinModelMixin模型扩展类添加没有Flask上下文环境时的使用支持
    • [A] 添加flaskz.ext包用于存放扩展工具类, 请注意ext包中的代码依赖的第三方包, 不在flaskz的install_requires中, 需要单独安装
    • [C] 将flaskz.utils.RSACipherflaskz.utils.AESCipher类所在的cypher.py文件移到了flaskz.ext包中
  • 0.7 2022/06/01
    • [A] 添加flaskz.utils.RSACipherflaskz.utils.AESCipher类用于加密&解密, 需要安装pycryptodome
    • [A] 添加flaskz.utils.append_url_search_params函数, 用于向url中添加search参数
  • 0.6 2022/05/06
    • [F] 修复当数据模型relationship中设置lazy=joined时, 排序引起的"Can't resolve label reference"问题
    • [F] 修复merge_dict方法, 因使用iteritems导致的bug
    • [F] 修复forward_request方法, 因请求没有设置Content-Type=application/json, 获取json时引发的BadRequest('Content-Type was not 'application/json')异常
    • [F] 修复未调用init_log初始化, 调用flaskz_logger时, 引起的NameError(name '_flaskz_logger' is not defined)问题
  • 0.3 2021/11/26
    • [A] 添加FLASKZ_LOGGER_DISABLED参数, 用于控制flaskz_logger的启用和禁用
    • [A] 添加使用文档
    • [C] 修改flaskz.utils.forward_request函数逻辑, 如果url_params参数为空时, 会把request.view_args作为url_params参数来调用api_request
  • 0.2 2021/11/12
    • [F] 修复query_multiple_model函数bug
    • [C] 对部分参数名进行规范化调整
  • 0.1 2021/10/26
    • 发布

About

Flaskz 是Flask和SQLAlchemy ORM的功能扩展,主要用于web应用的开发,可以快速灵活的实现各种业务场景和提供API。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages