API接口 DataAnalysisTableRecord 类
DataAnalysisTableRecord 类封装了当前请求参数和与平台处理相关的内容,开发业务的API接口时,通过需要实例化该类来方便业务代码开发。
这里需要注意,由于后端需要与平台通信且绑定到前缀 ms_jk,所以目前业务接口的代码必须位于 app/views/ms_jk 目录下,这也是 DataAnalysisTableRecord
类实例化时需要传入__file__参数的原因:需要该参数自动识别api的接口路由,并且绑定到 ms_jk 路由前缀下。目前默认识别 app/views/ms_jk 目录下
的引用过的业务接口。
DataAnalysisTableRecord 类的使用场景见下面代码示意:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from app.views.ms_jk import bp
from flask import request, jsonify
from hippo.web import DataAnalysisTableRecord # note here, 该类位于 hippo.web 下
from hippo.log_tracking import platform_monitor
@bp.route("/sayhello", methods=['POST']) # 这里,接口名称,文件名称,函数名称需要一致,默认识别接口时利用文件名与接口名相同注册的接口
@platform_monitor()
def sayhello():
record = DataAnalysisTableRecord(__file__) # note here, __file__ 是python中内置的一个私有变量,其值为当前代码文件的全路径
pass
一些常用的属性和方法说明
-
record.get_input_param('infile')类的方法:
保存了前端界面配置的所有左侧参数,获取的参数为保存到平台的参数,再次请求时修改接口内容也不会改变该参数值 -
record.get_plot_param('color')类的方法:
从当前请求中获取界面配置的所有右侧参数,可以通过指定default参数值来给定没有配置该参数时的默认值 -
record.image_return_add(filepath, labels=None, expand=False)类的方法:
添加一个或多个图片到缓存中进行与前端控件相匹配的格式封装,该方法会封装对应图片的base64供前端组件使用。- 参数
filepath:str|list,图片文件路径,仅支持.png,.jpg格式文件(不区分大小写) - 参数
labels:str|list,默认值None,默认使用文件名称作为显示标签,否则使用给定名称作为显示标签,该参数如果需要指定,需要与filepath格式保持一致 - 参数
expand:bool,默认值False,仅当filepath为list时可以生效,当指定为False时,组装为下拉列表格式,否则组装成平铺格式
- 参数
-
record.image_return_get()类的方法:
获取图片缓存中封装好的格式,这里给出几种image_return_add指定不同类型参数时封装的结果格式,示例如下:-
.image_return_add('/pic1.jpg')
仅指定单个图片路径时,会使用文件名称作为显示名(多个图片时前端会显示成下拉列表),返回格式如下:python [{'select_list': [{'label': 'pic1', 'value': 'pic1'}], 'base64_images': ['图片的base64,略']}] -
.image_return_add('/pic1.jpg', 'dog')
仅指定单个图片路径,并给定显示名称时,会使用给定名称作为显示名,返回格式如下:python [{'select_list': [{'label': 'dog', 'value': 'pic1'}], 'base64_images': ['图片的base64,略']}]-.image_return_add(['/pic1.jpg','/pic2.jpg'])
指定多个图片路径时,会使用对应的文件名称作为显示名,返回格式如下:python [ { 'select_list': [{'label': 'pic1', 'value': 'pic1'}, {'label': 'pic2', 'value': 'pic2'}], 'base64_images': ['图片的base64,略', '图片的base64,略'] } ]-.image_return_add(['/pic1.jpg','/pic2.jpg'],['dog','cat'])
指定多个图片路径,且指定同等数量的名字时,会使用对应的名称作为显示名,返回格式如下:python [ { 'select_list': [{'label': 'dog', 'value': 'pic1'}, {'label': 'cat', 'value': 'pic2'}], 'base64_images': ['图片的base64,略', '图片的base64,略'] } ]-.image_return_add(['/pic1.jpg','/pic2.jpg'],['dog','cat'],True)
当指定expand格式时,会组装成平铺形式控件所需的数据格式python [ {'select_list': [{'label': 'cat', 'value': 'pic1'}], 'base64_images': ['图片的base64,略']}, {'select_list': [{'label': 'dog', 'value': 'pic2'}], 'base64_images': ['图片的base64,略']} ]
-
-
record.stream_return_add()类的方法:
与.stream_return_add()方法的调用方式相同,该方法会组装对应图片的文件流调用接口供前端组件使用 -
record.stream_return_get()类的方法:
获取图片缓存中封装好的格式,这里给出几种stream_return_get指定不同类型参数时封装的结果格式,示例如下:-
.stream_return_add('/pic1.jpg')
仅指定单个图片路径时,会使用文件名称作为显示名(多个图片时前端会显示成下拉列表),返回格式如下:python [{'select_list': [{'label': 'pic1', 'value': '/ms_jk/get_image_stream?p=/pic1.jpg'}]}] -
.stream_return_add('/pic1.jpg', 'dog')
仅指定单个图片路径,并给定显示名称时,会使用给定名称作为显示名,返回格式如下:python [{'select_list': [{'label': 'dog', 'value': '/ms_jk/get_image_stream?p=/pic1.jpg'}]}]-.stream_return_add(['/pic1.jpg','/pic2.jpg'])
指定多个图片路径时,会使用对应的文件名称作为显示名,返回格式如下:python [ { 'select_list': [ {'label': 'pic1', 'value': '/ms_jk/get_image_stream?p=/pic1.png'}, {'label': 'pic2', 'value': '/ms_jk/get_image_stream?p=/pic2.png'} ] } ]-.image_return_add(['/pic1.jpg','/pic2.jpg'],['dog','cat'])
指定多个图片路径,且指定同等数量的名字时,会使用对应的名称作为显示名,返回格式如下:python [ { 'select_list': [ {'label': 'dog', 'value': '/ms_jk/get_image_stream?p=/pic1.png'}, {'label': 'cat', 'value': '/ms_jk/get_image_stream?p=/pic2.png'} ] } ]-.image_return_add(['/pic1.jpg','/pic2.jpg'],['dog','cat'],True)
当指定expand格式时,会组装成平铺形式控件所需的数据格式python [ {'select_list': [{'label': 'dog', 'value': '/ms_jk/get_image_stream?p=/pic1.png'}]}, {'select_list': [{'label': 'cat', 'value': '/ms_jk/get_image_stream?p=/pic2.png'}]} ]
-
继承自父类的相关属性和方法说明
路径依赖相关
record.workflow_root类的属性(需要子类实现): 该路径由DataAnalysisSubmit.submit()提交时由框架记录到平台中,实例化时自动注入;保存了本次请求工作空间目录所在的位置,一般不使用该属性处理路径关系record.path_uuid类的属性: 工作空间目录所依赖的uuid,该属性保证对应请求的路径唯一;该属性开发人员一般不使用record.input类的属性: 工作空间目录下的input目录的路径, 一般规划用来放置当前请求(用户上传)的输入文件,但由于业务原因,该功能暂时废弃record.path_for_input()类的方法: 返回工作空间目录下的input目录的路径,等价于record.input(功能废弃)record.output类的属性: 工作空间目录下的output目录的路径, 用户点击界面的下载按钮会打包下载该目录下的所有文件record.path_for_output()类的方法: 返回工作空间目录下的output目录的路径,等价于record.outputrecord.path_for_dir('log')类的方法: 返回工作空间目录下指定名称路径,该名称的目录方法内部会创建
命令行拼接相关功能
与record.cmd_cache相关的方法有:
1. record.add()
1. record.clean_cache()
1. record.run_scripts()
相关说明详见CmdCache.