一、介绍
首先说一下为什么需要让数据在Html Java Python之间流通。
前端Html使用的thymeleafSpring BootFastAPI
目前有一个数据分析的功能,要求从html前端接受数据,后台进行处理。但是Java直接做数据分析是不太方便的,所以这里想接入Python来做。
接入Python调查到有两种方式,但是都有其局限性,Java调用Python脚本。直接写好Python脚本,然后用Java执行该脚本。参数以args的形式传给python脚本,用python用print来返回数据。但是该方法对参数的传输不太友好,功能很局限。无法传输复杂的数据类型。
通过Jython。Jython是Python用Java的实现,所以可以很自然的用Java调Jython。但是Jython对第三方模块支持很少,无法满足这里需要用到的数据分析第三方模块。
由于这些局限性,所以上面这两种方式都被否定。采用了以下方式:前端Html传一个form表单数据,发送请求到Java。
Spring框架的Controller对该数据进行封装,整理成json,发送请求到Python服务。
Python中的服务接受该json数据,对json进行解析得到结果。
结果再交由数据分析的功能模块进行处理。
处理后将最终结果组装成json返回给Spring。
Spring再将结果放到Model中返回给Html。
后面就从代码上描述如何完成以上步骤。
二、Html提交form
定义了两个input框,用来输入字符串数据。
为form设定post请求,发送给 Spring的 /data 服务。
代码和结果图如下