Skip to content

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,仅当filepathlist时可以生效,当指定为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.output
  • record.path_for_dir('log') 类的方法: 返回工作空间目录下指定名称路径,该名称的目录方法内部会创建

命令行拼接相关功能

record.cmd_cache相关的方法有: 1. record.add() 1. record.clean_cache() 1. record.run_scripts()

相关说明详见CmdCache.