summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshihaoyue <[email protected]>2024-05-22 20:20:01 +0800
committershihaoyue <[email protected]>2024-05-22 20:20:01 +0800
commit76ff60dfb0b0e74be10b324cc9003b5b3f859ca3 (patch)
treef79c76e36ce9b797af6eb7b7e55e7f7e961ca0b8
parent3c3143b999060c1a33ad0801dc50393fb97f5e04 (diff)
format model
-rw-r--r--server/model.py51
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