|
@@ -14,7 +14,7 @@ from .utils import create_dynamic_table, allowed_file, infer_column_types, renam
|
|
predict_to_Q, Q_to_t_ha, create_kriging
|
|
predict_to_Q, Q_to_t_ha, create_kriging
|
|
from sqlalchemy.orm import sessionmaker
|
|
from sqlalchemy.orm import sessionmaker
|
|
import logging
|
|
import logging
|
|
-from sqlalchemy import text, func
|
|
|
|
|
|
+from sqlalchemy import text, func, MetaData, Table, select
|
|
from .tasks import train_model_task
|
|
from .tasks import train_model_task
|
|
from datetime import datetime
|
|
from datetime import datetime
|
|
|
|
|
|
@@ -376,6 +376,8 @@ def get_model(model_id):
|
|
'Created_at': model.Created_at.strftime('%Y-%m-%d %H:%M:%S'),
|
|
'Created_at': model.Created_at.strftime('%Y-%m-%d %H:%M:%S'),
|
|
'Description': model.Description,
|
|
'Description': model.Description,
|
|
'Performance_score': float(model.Performance_score) if model.Performance_score else None,
|
|
'Performance_score': float(model.Performance_score) if model.Performance_score else None,
|
|
|
|
+ 'MAE': float(model.MAE) if model.MAE else None,
|
|
|
|
+ 'RMSE': float(model.RMSE) if model.RMSE else None,
|
|
'Data_type': model.Data_type
|
|
'Data_type': model.Data_type
|
|
})
|
|
})
|
|
else:
|
|
else:
|
|
@@ -1038,3 +1040,38 @@ def get_models():
|
|
if session:
|
|
if session:
|
|
session.close()
|
|
session.close()
|
|
|
|
|
|
|
|
+
|
|
|
|
+# 定义提供数据库列表,用于展示表格的 API 接口
|
|
|
|
+@bp.route('/table', methods=['POST'])
|
|
|
|
+def get_table():
|
|
|
|
+ data = request.get_json()
|
|
|
|
+ table_name = data.get('table')
|
|
|
|
+ if not table_name:
|
|
|
|
+ return jsonify({'error': '需要表名'}), 400
|
|
|
|
+
|
|
|
|
+ try:
|
|
|
|
+ # 创建 sessionmaker 实例
|
|
|
|
+ Session = sessionmaker(bind=db.engine)
|
|
|
|
+ session = Session()
|
|
|
|
+
|
|
|
|
+ # 动态获取表的元数据
|
|
|
|
+ metadata = MetaData()
|
|
|
|
+ table = Table(table_name, metadata, autoload_with=db.engine)
|
|
|
|
+
|
|
|
|
+ # 从数据库中查询所有记录
|
|
|
|
+ query = select(table)
|
|
|
|
+ result = session.execute(query).fetchall()
|
|
|
|
+
|
|
|
|
+ # 将结果转换为列表字典形式
|
|
|
|
+ rows = [dict(zip([column.name for column in table.columns], row)) for row in result]
|
|
|
|
+
|
|
|
|
+ # 获取列名
|
|
|
|
+ headers = [column.name for column in table.columns]
|
|
|
|
+
|
|
|
|
+ return jsonify(rows=rows, headers=headers), 200
|
|
|
|
+
|
|
|
|
+ except Exception as e:
|
|
|
|
+ return jsonify({'error': str(e)}), 400
|
|
|
|
+ finally:
|
|
|
|
+ # 关闭 session
|
|
|
|
+ session.close()
|