diff --git a/README.md b/README.md index df4d1fe..6b260ee 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ tree -I '*svn|*node_module*|*git|py3|*.pyc|__pycache__|statics' │   │   ├── const.py │   │   ├── models │   │   │   └── *.py -│   │   ├── filters +│   │   ├── assemblers │   │   │   └── *.py │   │   ├── services │   │   │   └── *.py @@ -35,7 +35,7 @@ tree -I '*svn|*node_module*|*git|py3|*.pyc|__pycache__|statics' │   │   ├── modules.py │   │   ├── services │   │   │   └── *.py -│   │   ├── filters +│   │   ├── assemblers │   │   │   └── *.py │   │   ├── templates │   │   │   └── */*.html @@ -74,17 +74,15 @@ tree -I '*svn|*node_module*|*git|py3|*.pyc|__pycache__|statics' * applications 应用rest api相关代码 * applications/common/models 公共应用数据模型层 * applications/common/services 公共应用服务层 - * applications/common/filters/requests 公共应用请求过滤器层 - * applications/common/filters/responses 公共应用响应过滤器层 + * applications/common/assemblers 公共组装器层 * applications/common/const.py 公共应用常量 * applications/common/utils.py 公共应用助手函数 * applications/app1 独立应用 - * applications/app1/handlers app1用控制器层 - * applications/app1/models app1用数据模型层 - * applications/app1/services app1应用服务层 - * applications/app1/templates app1应用视图层 - * applications/app1/filters/requests app1应用请求过滤器层 - * applications/app1/filters/responses app1应用响应过滤器层 + * applications/app1/handlers app1用控制器层,有路由器调用,负责接收并且校验参数 + * applications/app1/services app1应用服务层,在控制器里面调用,负责一个业务逻辑 + * applications/app1/models app1用数据模型层,在服务层调用,负责对一个数据库表CURD操作 + * applications/app1/assemblers app1组装器层,在控制器里面调用,负责把服务层数据响应给API + * applications/app1/templates app1应用视图层,渲染service数据 * datas 数据 * datas/locales 多语言数据 * datas/json JSON数据文件 diff --git a/README_zh.md b/README_zh.md index df4d1fe..6b260ee 100644 --- a/README_zh.md +++ b/README_zh.md @@ -22,7 +22,7 @@ tree -I '*svn|*node_module*|*git|py3|*.pyc|__pycache__|statics' │   │   ├── const.py │   │   ├── models │   │   │   └── *.py -│   │   ├── filters +│   │   ├── assemblers │   │   │   └── *.py │   │   ├── services │   │   │   └── *.py @@ -35,7 +35,7 @@ tree -I '*svn|*node_module*|*git|py3|*.pyc|__pycache__|statics' │   │   ├── modules.py │   │   ├── services │   │   │   └── *.py -│   │   ├── filters +│   │   ├── assemblers │   │   │   └── *.py │   │   ├── templates │   │   │   └── */*.html @@ -74,17 +74,15 @@ tree -I '*svn|*node_module*|*git|py3|*.pyc|__pycache__|statics' * applications 应用rest api相关代码 * applications/common/models 公共应用数据模型层 * applications/common/services 公共应用服务层 - * applications/common/filters/requests 公共应用请求过滤器层 - * applications/common/filters/responses 公共应用响应过滤器层 + * applications/common/assemblers 公共组装器层 * applications/common/const.py 公共应用常量 * applications/common/utils.py 公共应用助手函数 * applications/app1 独立应用 - * applications/app1/handlers app1用控制器层 - * applications/app1/models app1用数据模型层 - * applications/app1/services app1应用服务层 - * applications/app1/templates app1应用视图层 - * applications/app1/filters/requests app1应用请求过滤器层 - * applications/app1/filters/responses app1应用响应过滤器层 + * applications/app1/handlers app1用控制器层,有路由器调用,负责接收并且校验参数 + * applications/app1/services app1应用服务层,在控制器里面调用,负责一个业务逻辑 + * applications/app1/models app1用数据模型层,在服务层调用,负责对一个数据库表CURD操作 + * applications/app1/assemblers app1组装器层,在控制器里面调用,负责把服务层数据响应给API + * applications/app1/templates app1应用视图层,渲染service数据 * datas 数据 * datas/locales 多语言数据 * datas/json JSON数据文件 diff --git a/promise.md b/promise.md index fb6dfb7..a98d7d3 100644 --- a/promise.md +++ b/promise.md @@ -3,28 +3,28 @@ * 异常信息务必记录到`SysLogger.error(e, exc_info=True)`记录到日志里面,便于排查错误 * 只定义了一个API 通过不同的请求方式,来执行不同的操作(查询用get 添加用post 更新用put 删除用delete) [参考](https://blog.csdn.net/dxftctcdtc/article/details/9197639) -### models层 -* 所有模型通过“codegen.py”脚本自动生成,放到 applications/common/models/[model_name].py文件里, -* models层 单纯的和数据表做映射关系,可以在这里添加虚拟熟悉,格式化数据等功能; - ### handlers层 * 每个App应该有自己的CommonHandler,如无必要,请直接使用 ` from trest.handler import BaseHandler ` * handlers层 接受请求参数、校验参数,请求services,响应结果,后续处理调用; * 在handlers层不能直接调用models层 -* 在handlers层不能直接调用filters层 +* 在handlers层不能直接调用assemblers层 ### services层 * services层 供handlers层或者其他脚本调用需要事务性的的功能,由它来引入models,操作数据库,比如用户注册功能;数据列表功能,都可以定义到services里面; * services层 方法return 数据类型,尽量以少些代码为原则,从数据库里面出来的是 对象,就直接返回,不要特意转化为字典类型了;如果是方法从多张表里面聚合数据,返回数据类型根据事情情况确定; * services层可以调用其他services层层; -### filters层 -* filters层,只对API协议需要的数据进行格式化组装(不在该层调用model或者其他service),如果API协议没有特殊需要,可以不定义相应的filter -* filters层不可以调用其他filters层 +### models层 +* 所有模型通过“codegen.py”脚本自动生成,放到 applications/common/models/[model_name].py文件里, +* models层 单纯的和数据表做映射关系,可以在这里添加虚拟熟悉,格式化数据等功能; + +### assemblers层 +* assemblers层,只对API协议需要的数据进行格式化组装(不在该层调用model或者其他service),如果API协议没有特殊需要,可以不定义相应的assembler +* assemblers层不可以调用其他assemblers层 ## 数据库相关约定 -* 尽可能不连表查询,在filters层组装API协议需要的数据格式; +* 尽可能不连表查询,在assemblers层组装API协议需要的数据格式; * 数据库密码经过AES加密,没有明文存储,进过AES加密的密码,格式 aes::: + ciphertext * 数据库使用utf8mb4编码 * 数据库和时间相关的字段统一使用Unix时间戳格式 bigint(13),单位为毫秒