diff options
| author | shihaoyue <[email protected]> | 2024-05-22 20:20:01 +0800 |
|---|---|---|
| committer | shihaoyue <[email protected]> | 2024-05-22 20:20:01 +0800 |
| commit | 76ff60dfb0b0e74be10b324cc9003b5b3f859ca3 (patch) | |
| tree | f79c76e36ce9b797af6eb7b7e55e7f7e961ca0b8 | |
| parent | 3c3143b999060c1a33ad0801dc50393fb97f5e04 (diff) | |
format model
| -rw-r--r-- | server/model.py | 51 |
1 files changed, 29 insertions, 22 deletions
diff --git a/server/model.py b/server/model.py index ffc4a97..7d70276 100644 --- a/server/model.py +++ b/server/model.py @@ -1,17 +1,18 @@ - from exts import db from settings import * import json import datetime + class User(db.Model): __tablename__ = MYSQL_TAB_USER user_id = db.Column(db.String(255), primary_key=True, nullable=False) user_name = db.Column(db.String(255)) created_by = db.Column(db.String(255)) - created_time = db.Column(db.TIMESTAMP, server_default=db.func.now()) + created_time = db.Column(db.TIMESTAMP, server_default=db.func.now()) user_pwd_hash = db.Column(db.String(255)) - user_group =db.Column(db.String(255)) + user_group = db.Column(db.String(255)) + class Task(db.Model): __tablename__ = MYSQL_TAB_TASK @@ -34,6 +35,7 @@ class Task(db.Model): agent = db.relationship('Agent', backref='tasks') user = db.relationship('User', backref='tasks') + class TaskLog(db.Model): __tablename__ = MYSQL_TAB_TASK_LOG tlog_id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=False) @@ -47,6 +49,7 @@ class TaskLog(db.Model): agent = db.relationship('Agent', backref='task_logs') task_policy = db.relationship('TaskPolicy', backref='task_logs') + class TaskPolicy(db.Model): __tablename__ = MYSQL_TAB_TASKPOLICY tp_id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=False) @@ -59,6 +62,7 @@ class TaskPolicy(db.Model): policy_ref = db.relationship('Policy', backref='task_policies') task = db.relationship('Task', backref='task_policies') + class Agent(db.Model): __tablename__ = MYSQL_TAB_AGENT agent_id = db.Column(db.String(255), primary_key=True, nullable=False) @@ -74,6 +78,7 @@ class Agent(db.Model): mem = db.Column(db.String(255)) idle = db.Column(db.Boolean) + class Policy(db.Model): __tablename__ = MYSQL_TAB_POLICY p_id = db.Column(db.String(255), primary_key=True, nullable=False) @@ -84,6 +89,7 @@ class Policy(db.Model): p_name = db.Column(db.String(255)) p_proto = db.Column(db.String(255)) + class Syslog(db.Model): __tablename__ = MYSQL_TAB_SYSLOG log_id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=False) @@ -96,6 +102,7 @@ class Syslog(db.Model): # Relationships user = db.relationship('User', backref='syslogs') + class Target(db.Model): __tablename__ = MYSQL_TAB_TARGETDATA target_id = db.Column(db.Integer, primary_key=True, autoincrement=True, nullable=False) @@ -113,8 +120,9 @@ class Target(db.Model): protect = db.Column(db.String(255)) doh_domain = db.Column(db.String(255)) -#对单个模型操作 -def model_to_dict(model, fields=None,exchange_fields=None): + +# 对单个模型操作 +def model_to_dict(model, fields=None, exchange_fields=None): """ 将Flask SQLAlchemy的模型对象转换为字典类型 :param: model : 模型对象 @@ -122,7 +130,7 @@ def model_to_dict(model, fields=None,exchange_fields=None): :param: exchange_fields : 需要替换名字的字段,{'数据库字段':'前端展示字段'},有些数据库字段名在展示时需要修改成前端需要的名字 :return: 返回字典类型 """ - #传递空值时 + # 传递空值时 if not model: return {} if fields is None: @@ -132,42 +140,42 @@ def model_to_dict(model, fields=None,exchange_fields=None): relations = getattr(model.__class__, '__mapper__').relationships exclude_cols = [rel.key for rel in relations] # print(exclude_cols,'要剔除的反向查询字段') - #拿到所有列名-排除的列名 + # 拿到所有列名-排除的列名 cols = set(columns) - set(exclude_cols) fields = list(cols) - + obj_dict = {} for field in fields: if field not in model.__dict__: continue - + value = model.__dict__[field] - #1、对时间字段进行操作 + # 1、对时间字段进行操作 if isinstance(value, datetime.datetime): - #字段类型是datetime的,格式化 + # 字段类型是datetime的,格式化 value = value.strftime('%Y-%m-%d %H:%M:%S') - if isinstance(value,datetime.date): - #字段类型是date的,格式化 + if isinstance(value, datetime.date): + # 字段类型是date的,格式化 value = value.strftime('%Y-%m-%d') - #2、将所有可以进行反序列化的进行反序列化(将json字符串转成python结构数据类型) - if isinstance(value,str): + # 2、将所有可以进行反序列化的进行反序列化(将json字符串转成python结构数据类型) + if isinstance(value, str): try: value = json.loads(value) except Exception as _: pass #3、替换展示的字段 if type(exchange_fields) == dict: - for db_field,show_field in exchange_fields.items(): + for db_field, show_field in exchange_fields.items(): #db_field 是数据库字段,show_field是展示字段名 - if field==db_field: + if field == db_field: field = show_field - + obj_dict[field] = value - + return obj_dict #对数据集操作 -def model_to_dict_list(queryset,fields=None,exchange_fields=None): +def model_to_dict_list(queryset, fields=None, exchange_fields=None): #1、空对象操作 if not queryset: return [] @@ -176,7 +184,6 @@ def model_to_dict_list(queryset,fields=None,exchange_fields=None): #3、循环操作 ret = [] for obj in queryset: - dic = model_to_dict(obj,fields=fields,exchange_fields=exchange_fields) + dic = model_to_dict(obj, fields=fields, exchange_fields=exchange_fields) ret.append(dic) return ret -
\ No newline at end of file |
