@app.route('/processing/',methods=['POST'])
def processing():
try:
if len(os.listdir(articles_path))>0:
simple_processing.ALL_TXT_processing()
res_table=simple_training.SKLEARN_LDA()
return res_table #返回list
return 'empty_processing'
except Exception as e:
print(e)
return 'no_processing'
出现以下报错:
TypeError: ‘list’ object is not callable
The view function did not return a valid response. The return type must be a string, tuple, Response instance, or WSGI callable, but it was a list.
原因是flask中直接返回list或dict是不行的,要求的返回值类型只有:
1、字符串类型
2、json类型(使用flask的 jsonify() 模块),实际是Response对象
解决方法
return res_table
改成:
return jsonify(res_table)
前端接收json数据:
var self=this;
axios.post('/processing/', {})
.then(function (response) {
console.log(response.data);
if (response.data == 'no_processing') {
alert("文章分析失败!");
return;
}else if(response.data=='empty_processing'){
alert("文章数据为空,无法分析!")
return;
}
response.data.forEach(function(element){
self.processing_tableData.push(element);
console.log(element);
});
console.log("ok_processing")
})
.catch(function (error) {
console.log(error);
})