update 初始化项目
This commit is contained in:
commit
024d332bc5
|
@ -0,0 +1,75 @@
|
||||||
|
from Utils.ObjUtil import SpecObject
|
||||||
|
from Utils.ValidateUtil import ValidateAttr
|
||||||
|
|
||||||
|
|
||||||
|
class IndexObj(SpecObject):
|
||||||
|
"""指标"""
|
||||||
|
|
||||||
|
class Parameter(SpecObject):
|
||||||
|
"""传入参数"""
|
||||||
|
|
||||||
|
class DataDind(SpecObject):
|
||||||
|
"""数据绑定"""
|
||||||
|
|
||||||
|
class Path(SpecObject):
|
||||||
|
"""路径"""
|
||||||
|
database = ValidateAttr(field="", type=str)
|
||||||
|
sheet = ValidateAttr(field="sheet", type=str)
|
||||||
|
field = ValidateAttr(field="field", type=str)
|
||||||
|
|
||||||
|
fields_map = {
|
||||||
|
"database": "库",
|
||||||
|
"sheet": "表",
|
||||||
|
"field": "字段"
|
||||||
|
}
|
||||||
|
|
||||||
|
class Site(SpecObject):
|
||||||
|
"""设置"""
|
||||||
|
type = ValidateAttr(field="type", type=str)
|
||||||
|
transform = ValidateAttr(field="transform", type=str)
|
||||||
|
|
||||||
|
fields_map = {
|
||||||
|
"type": "类型",
|
||||||
|
"transform": "转换",
|
||||||
|
}
|
||||||
|
|
||||||
|
path = ValidateAttr(field="path", type=Path)
|
||||||
|
site = ValidateAttr(field="site", instance_list=Site)
|
||||||
|
|
||||||
|
fields_map = {
|
||||||
|
"path": "路径",
|
||||||
|
"site": "设置"
|
||||||
|
}
|
||||||
|
|
||||||
|
param = ValidateAttr(field="param", type=str)
|
||||||
|
data_bind = ValidateAttr(field="data_bind", type=DataDind)
|
||||||
|
describe = ValidateAttr(field="describe", type=str)
|
||||||
|
|
||||||
|
fields_map = {
|
||||||
|
"param": "参数",
|
||||||
|
"data_bind": "数据绑定",
|
||||||
|
"describe": "说明"
|
||||||
|
}
|
||||||
|
|
||||||
|
index_id = ValidateAttr(field='index_id', type=str)
|
||||||
|
index_field = ValidateAttr(field='index_field', type=str)
|
||||||
|
func_field = ValidateAttr(field='func_field', type=str)
|
||||||
|
parameter = ValidateAttr(field='parameter', instance_list=Parameter)
|
||||||
|
|
||||||
|
fields_map = {
|
||||||
|
"index_id": "指标ID",
|
||||||
|
"index_field": "指标名称",
|
||||||
|
"func_field": "绑定函数",
|
||||||
|
"parameter": "传入参数"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class TagObj(SpecObject):
|
||||||
|
"""标签"""
|
||||||
|
tag_id = ValidateAttr(field='tag_id', type=str)
|
||||||
|
tag_field = ValidateAttr(field='tag_field', type=str)
|
||||||
|
|
||||||
|
fields_map = {
|
||||||
|
"tag_id": "标签ID",
|
||||||
|
"tag_field": "标签名称"
|
||||||
|
}
|
|
@ -0,0 +1,100 @@
|
||||||
|
import time
|
||||||
|
import traceback
|
||||||
|
|
||||||
|
from flask import request
|
||||||
|
from werkzeug.exceptions import BadRequest
|
||||||
|
|
||||||
|
from DBHelper.MongoHelperInstance import DB_TEST
|
||||||
|
|
||||||
|
|
||||||
|
def get_req_detail(req, param_type):
|
||||||
|
"""
|
||||||
|
获取请求参数信息
|
||||||
|
若异常请求则返回空字符串
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
if param_type == 'args':
|
||||||
|
return req.args.__str__()
|
||||||
|
elif param_type == 'json':
|
||||||
|
return req.json.__str__()
|
||||||
|
else:
|
||||||
|
return ''
|
||||||
|
except BadRequest:
|
||||||
|
return ''
|
||||||
|
|
||||||
|
|
||||||
|
class JustThrowError(RuntimeError):
|
||||||
|
"""自定义抛出异常信息"""
|
||||||
|
|
||||||
|
def __init__(self, error_info):
|
||||||
|
self.error_info = error_info
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.error_info
|
||||||
|
|
||||||
|
|
||||||
|
class APIReturnError(RuntimeError):
|
||||||
|
"""接口返回异常信息"""
|
||||||
|
def __init__(self, error_info, status_code):
|
||||||
|
self.error_info = error_info # 异常信息
|
||||||
|
self.status_code = status_code # 状态码
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.error_info
|
||||||
|
|
||||||
|
|
||||||
|
class AttrCheckError(RuntimeError):
|
||||||
|
"""属性检查异常"""
|
||||||
|
|
||||||
|
def __init__(self, error_info):
|
||||||
|
self.error_info = error_info
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.error_info
|
||||||
|
|
||||||
|
|
||||||
|
class CheckFailed(RuntimeError):
|
||||||
|
"""检查异常"""
|
||||||
|
|
||||||
|
def __init__(self, failed_info, status_code):
|
||||||
|
self.failed_info = failed_info # 失败信息
|
||||||
|
self.status_code = status_code # 状态码
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.failed_info
|
||||||
|
|
||||||
|
def log_error(self):
|
||||||
|
|
||||||
|
info = {
|
||||||
|
"ip": request.remote_addr,
|
||||||
|
"request_info": {
|
||||||
|
"path": request.path,
|
||||||
|
"method": request.method,
|
||||||
|
"headers": request.headers.__str__(),
|
||||||
|
"args": get_req_detail(request, 'args'),
|
||||||
|
"json": get_req_detail(request, 'json')
|
||||||
|
},
|
||||||
|
"traceback": traceback.format_exc(),
|
||||||
|
"exception": type(self).__name__,
|
||||||
|
"is_solved": "no",
|
||||||
|
"time": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
|
||||||
|
}
|
||||||
|
|
||||||
|
DB_TEST.insert_single_data(
|
||||||
|
"日志",
|
||||||
|
"异常日志",
|
||||||
|
info
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class LogConditionCheckFailed(CheckFailed):
|
||||||
|
"""直接记录检查异常"""
|
||||||
|
|
||||||
|
def __init__(self, failed_info, status_code):
|
||||||
|
self.failed_info = failed_info # 失败信息
|
||||||
|
self.status_code = status_code # 状态码
|
||||||
|
self.log_error()
|
||||||
|
|
||||||
|
|
||||||
|
class ReturnConditionCheckFailed(CheckFailed):
|
||||||
|
"""条件检查失败 抛出异常 接口返回失败原因和状态码"""
|
Loading…
Reference in New Issue