A Flask based package integrated with Spring Framework
Project description
Flask-SSM
这是在flask基础上,二次开发的web框架Flask-SSM,完全按照MVC分层的思想实现,对于没有web基础但需要做web项目的人可起到教学作用。尤其有助于java转python的web开发,让你按照java的思路写python使用方法
创建基础环境
- 如
package.name
包所示,在package.name.__init__.py
中定义SpringApplication
类的对象。 - 如
app.py
所示,在app.py
中导入该对象,然后对其进行初始化。
应用配置项
如package.name.config
包所示,在package.name.config.__init__.py
中导入Configuration
类,该包内的配置项能自动识别。
- 其中,配置项的key必须保持大写,才能被识别。
- 如果环境变量中有与key同名变量,变量值自动覆盖配置项。
web接口层
如package.name.controller
包所示,在package.name.controller.__init__.py
中导入Controller
类,该包内的全部Blueprint
类能被自动注册,从而实现接口的自动注册。
逻辑业务层
如package.name.service
包所示,在package.name.service.__init__.py
中导入Service
类。
- 如果某个函数涉及数据的修改,需要使用
@Transactional
修饰,并使用rollback_for
指定回滚的异常类型,从而开启事务。 - 如果需要对某个函数进行单元测试,需要使用
@Test
修饰该函数,并使用if __name__ == "__main__":
作为入口运行。
数据交互层
如package.name.dao
包所示,在package.name.dao.__init__.py
中导入Repository
类,可以使用注解式数据查询。
- 对于查询函数,使用
@Mapper
修饰,并使用result_type
指定返回类型。函数的参数为传入SQL语句的参数,返回值为SQL语句,即可实现返回对象的自动封装。
定时任务
如package.name.task
包所示,在package.name.task.__init__.py
中导入Scheduled
类,可以实现该包内的定时任务自动注册。
- 如
package.name.task.my_task
所示,在模块中声明ID, FUNC, TRIGGER等用于标志定时任务的变量即可,这些变量必须大写。其中ID表示定时任务的id,必须唯一。FUNC表示定时任务执行的函数名,对应的函数需要在文件内给出。其他标识与Flask-APScheduler的用法完全一致,直接填入即可。
ORM对象
- 如
package.name.pojo.pojo_demo
所示,每一个ORM映射对象需要使用类进行定义,并使用@Mapper
修饰,使用value
指定表名。 - 如
Pojo
类所示,类的属性需要与表的字段对应,并使用Column
类封装。这样声明的类能够使用SQLalchemy的方法进行查询,也可以被@Mapper
的result_type
识别。
版本更新
版本 | 更新内容 | 更新日期 |
---|---|---|
1.0.0.0 | 完成模板搭建,实现MVC分层,现在可以自助接入自定义内容。 | 2022年1月2日 |
1.1.0.0 | 完善模板,现在可以在controller下自建多级包 | 2022年1月9日 |
1.1.1.0 | 完善模板,现在可以在service下自建多级包 | 2022年1月10日 |
1.1.2.0 | 完善模板,现在可以在task下自建多级包 | 2022年1月11日 |
1.1.2.1 | 添加模板目录 | 2021年1月30日 |
1.2.0.0 | service层设置为单例模式;补充SQLalchemy的点查询demo | 2022年7月14日 |
1.3.0.0 | 分离pojo和dao | 2022年7月16日 |
1.3.1.0 | 输出更多日志 | 2022年7月16日 |
1.3.2.0 | 增加ViewObject; 增加logs目录 | 2022年8月5日 |
1.4.0.0 | 修改前端页面,可自定义请求方式、mime值、url、请求正文; 更改数据库用户名密码; 输出更多日志 | 2022年8月5日 |
1.4.1.0 | 修改前端页面样式 | 2022年8月5日 |
1.5.0.0 | 新增自定义异常及全局、局部异常处理 | 2022年8月5日 |
1.5.1.0 | 优化导入包路径 | 2022年8月5日 |
1.5.2.0 | 将多个Controller分布到不同的蓝图 | 2022年8月7日 |
1.6.0.0 | 将蓝图注册与初始化解耦,自动将py模块注册为蓝图; 异常handler增加日志输出 | 2022年8月7日 |
1.7.0.0 | 规范命名; service使用模块自动单例模式 | 2022年8月10日 |
1.7.0.1 | 优化代码; 更新使用说明 | 2022年8月11日 |
1.8.0.0 | 现在不需要把BluePrint对象命名为bp,也能实现蓝图的自动注册 | 2022年8月13日 |
1.8.0.1 | fix some bugs | 2022年8月13日 |
1.9.0.0 | 解耦task、controller、config、utils各个子模块,不需要的模块直接删除即可;fix some bugs | 2022年12月28日 |
2.0.0.0 | 优化代码,提升执行效率 | 2022年12月28日 |
2.1.0.0 | 修复BUG; 新增事务管理器; 新增工具类 | 2023年4月27日 |
2.2.0.0 | 新增运行入口; 新增docker部署运行方式 | 2023年5月22日 |
2.2.1.0 | 暴露端口5000 | 2023年5月22日 |
2.2.2.0 | 排除目录docs , sql | 2023年5月22日 |
2.2.2.1 | add some exclude path | 2023年5月22日 |
2.2.2.2 | 修复数据库连接包含特殊字符导致无法连接的BUG | 2023年5月26日 |
2.3.0.0 | 新增单元测试功能; 前端新增PUT和DELETE请求方式; 规范dao的用法 | 2023年5月26日 |
2.3.0.1 | fix some bugs | 2023年5月29日 |
2.4.0.0 | add initializer | 2023年5月30日 |
2.4.0.1 | fix some bugs | 2023年5月30日 |
2.4.0.2 | fix some bugs | 2023年5月31日 |
2.4.0.3 | fix some bugs | 2023年6月1日 |
2.5.0.0 | add mapper decorator; fix some bugs; add unit test example; change dao function usage | 2023年6月2日 |
2.5.1.0 | @mapper 新增np.ndarray 类型支持, 新增其他自定义参数, 修复注释错误; @test 优化执行逻辑 | 2023年6月3日 |
2.6.0.0 | config包自动配置,现在仅需要在其中写入键值对即可自动生效 | 2023年6月24日 |
2.7.0.0 | 将配置信息全部写入config包内; 新增eureka注册功能 | 2023年6月24日 |
2.7.1.0 | 新增HOST, PORT等配置项; 初始化脚本新增--app-host , --app-port , --app-debug , --application-root 选项 | 2023年6月24日 |
2.7.2.0 | initializer的--application-root 选项修改index.html | 2023年6月25日 |
2.7.3.0 | fix some bugs | 2023年6月26日 |
2.7.4.0 | 允许使用同名环境变量对配置项覆盖; fix some bugs | 2023年6月27日 |
2.7.5.0 | 更换eureka客户端; fix some bugs | 2023年6月29日 |
2.7.6.0 | 增加多线程、多进程配置项 | 2023年7月1日 |
2.7.6.1 | fix some bugs | 2023年7月14日 |
2.8.0.0 | 新增上传文件功能 | 2023年7月17日 |
2.8.1.0 | 传输文件使用临时文件,避免磁盘IO | 2023年7月18日 |
2.8.2.0 | 增加定时任务配置项; 主页新增"清屏"按钮 | 2023年7月20日 |
2.8.2.1 | 开启定时任务调度持久化; fix some bugs | 2023年7月20日 |
2.8.2.2 | fix some bugs | 2023年7月21日 |
2.8.2.3 | fix some bugs; 修改数据库配置项 | 2023年7月23日 |
2.8.2.4 | 启用自动重新加载 | 2023年7月24日 |
2.8.2.5 | 修正不规范的命名 | 2023年7月26日 |
2.8.2.6 | 修复pybatis 的空指针异常 | 2023年7月28日 |
2.8.2.7 | fix some bugs; 优化代码执行逻辑 | 2023年8月11日 |
2.9.0.0 | 优化代码执行逻辑; 修改定时任务默认配置项; @mapper 新增Generator 的定义 | 2023年8月28日 |
2.9.1.0 | fix some bugs; 更新pybatis 的用法 | 2023年8月31日 |
2.9.1.1 | 删除CursorResultUtils.py ; 更新说明文档 | 2023年9月1日 |
2.9.1.2 | fix some bugs | 2023年9月14日 |
2.9.2.0 | 更新pybatis 用法; 更新说明文档 | 2023年9月15日 |
2.9.3.0 | 更新主页, 新增表单提交功能 | 2023年9月20日 |
2.9.4.0 | 新增对mime值选项的悬停提示, 提示内容为后端接收参数方式 | 2023年9月21日 |
2.9.4.1 | fix some bugs | 2023年9月25日 |
2.9.5.0 | 修改前端页面样式 | 2023年10月12日 |
2.9.6.0 | 基于反射技术给定时任务加入上下文,修复定时任务中缺失上下文的BUG; 修复前端页面多次请求参数错误的BUG | 2023年10月31日 |
3.0.0.0 | 彻底分离框架与业务逻辑,构建框架Flask-SSM | 2023年11月9日 |
3.1.0.0 | 新增装饰器@TableName ; 装饰器@Test 新增统计运行时间的功能,并输出到日志; 修复若干BUG | 2023年11月10日 |
3.2.0.0 | 框架上传至pypi官方源 | 2023年11月11日 |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Close
Hashes for Flask_SSM-3.2.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a16df2a9d1258f10da742952fd3a411e49a7c6a788fe9194b564b9703827171 |
|
MD5 | 4b6a89cc05472be1a6362418c75b9fad |
|
BLAKE2b-256 | ef73c30054cf940bac058ed696eccba2cdd7b13d366aa20afad782a29c8f7281 |