背景
需求:根据输入条件,实现某个特定算法的数据输入、分析处理、数据回传并在Vue页面展示。
说明:算法是用python写的,而前端页面框架使用的vue,数据源是实时数据库TDengine。
探索解决方式
1、js+java+python
(1)通过前端js调用后端Java接口,将查询条件传输到后端
(2)Java后端根据搜索条件去实时数据库TDengine中获取数据
(3)将获取到的数据调用python算法包,实现数据的算法处理,并返回处理结果
(4)Java将处理好的结果根据与前端约定好的数据格式重新封装完结果返回给前端展示
分析:这样做可以实现需求,但是中间绕了好多道,特别是查询实时数据返回的数据比较大时,算法处理有延时,处理后的结果封装并回传给前端展示也是一个挑战,因此,并不是一个优选。
2、js+python+flask
(1)js直接与python交互,将查询条件通过http的方式传输到python工程中;
(2)python中根据条件去TDengine中查询数据并通过算法处理数据;
(3)将处理完的结果封装回传给js用于前端展示;
这种方案,减少了请求过程中的弯路,直接一个接口调用就可以完成需求,方便、轻量、解耦。
最终与Flask定情,完成约定
1、Vue中利用Ajax请求方式,请求python工程的开放出来的接口;
2、python接口中实现数据的查询、处理、回传,具体如下
(1)pip3 install taos
(2)pip3 install flask
(3)demo
这个demo会实现数据的查询、处理(算法略过了)、回传(打印出来处理完的数据) 最终访问localhost:2020显示:
'welcome to my webpage!'
这是第一次接触flask框架,最初在学python的时候只是关注了相关的算法实现,并没有太在意相关的web基础框架,后来查阅了资料,在flask与django之间做了一些预研的工作,总体来说,Django功能比较全,而且安全性比较好,但是比较重,flask框架比较轻,足够满足这个需求了,因此选定了flask来实现这个需求。
从0到1的探索过程有种一见钟情的感觉,后续计划基于Flask框架设计实现算法模型管理平台,持续加油中!