需要从AJAX调用中加载动态生成的字符串列表(Flask后端)
我觉得标题已经说得很清楚了,简单来说,这是我的flask/python后端。
@app.route('/failing_jobs/', methods= ['GET' , 'POST'])
def failing_jobs():
real_list = generate_failing_jobs() #normal method that will generate a list
dummy_list = ['jobA', 'jobB', 'jobC']
return dummy_list
现在在我的模板里,我有一个脚本
<!-- necesary j-Query includes above this point-->
<script type= "text/javascript">
$(document).ready(function(){
alert("Before the ajax call");
$.ajax({
url : "/failing_jobs/",
type : "GET",
success : function(data){
alert(data);
}
});
alert("After the ajax call");
});
</script>
中间的“alert”语句从来没有被执行(虽然它两边的语句是执行的),而在我的后端,我有
"TypeError: 'list' object is not callable"
有没有人知道我怎么才能输出一个列表,还是说我需要把它拆开,或者其他什么方法?我该如何通过ajax加载一个动态生成的列表?
1 个回答
1
你必须返回一个字符串、一个元组(里面可以包含一个字符串,还有可选的状态码和头信息)或者一个响应对象。这里不可以返回一个列表。可以使用 jsonify()
来代替(把列表命名为):
from flask import jsonify
@app.route('/failing_jobs/', methods= ['GET' , 'POST'])
def failing_jobs():
real_list = generate_failing_jobs() #normal method that will generate a list
return jsonify(jobs=real_list)
在 jQuery 这边使用:
$.ajax({
url : "/failing_jobs/",
type : "GET",
contentType: "application/json",
success : function(data){
alert(data.jobs);
}
});