- 这个包存放着前后端交互的接口,相当于java的controller包。如需自定义接口,仅需要把py文件放入该包内,并使用
@bp.route
装饰器注册进去即可。 - 样例中已经给出了基础接口base_controller.py,如需自定义仿照此样例即可,在此包下的每个py文件构成一个蓝图,并且能够自动注册。
- 这个包存放着业务的服务,相当于java的service包。里面的所有模块均需要以模块的形式提供,以此保证单例模式。
- 如果需要被别的模块引用,直接
from package.name.service import **_service
即可
- 这个包对应着数据访问层,相当于java的dao包。主要用来写sql,用法同Flask_SQLAlchemy完全一样
- 如果需要被别的模块引用,直接
from package.name.dao import **_dao
即可
- 这个包用于存放定时任务,使用时只需要将自定义的定时任务放入包内。
- 然后在文件中声明ID, FUNC, TRIGGER等用于标志定时任务的变量即可,这些变量必须大写。其中ID表示定时任务的id,必须唯一。FUNC表示定时任务执行的函数名,对应的函数需要在文件内给出。其他标识与Flask-APScheduler的用法完全一致,直接填入即可。
- package.name.config,这个包存放着配置信息,包括但不限于数据库配置信息、日志配置信息。样例中已经给出了数据库配置样例database_config.py,日志配置样例logs_config.py
- 这个包用于存放工具模块,样例中已经给出了工具dir_utils.py的样例。
- 这个包用于存放实体类,通过继承flask_sqlalchemy的Model类,可实现对实体对象的快速query
- 这个包存储了ViewObject,是后端响应给前端的标准json数据格式
注意:java的jsp属于动态资源 你会发现,该模板中有很多放入包内自动配置的内容。而使这些自动生效的根源就在于每个包下面把的__init__.py,通过该文件实现了免配置自动生效的效果。从而模拟出来类似于java的控制反转和依赖注入的效果。
版本 | 更新内容 | 更新日期 |
---|---|---|
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日 |