我有一个功能,用Pandas分析CSV文件,并生成一个包含摘要信息的dict.我想将结果作为Flask视图的响应返回.如何返回JSON响应?
@app.route("/summary")
def summary():
d = make_summary()
# send it back as json
Run Code Online (Sandbox Code Playgroud) 在下面的视频中,在时间标记21:40,Microsoft PDC演示者说重要的是所有JSON都被包装,因此它不是顶级数组:
https://channel9.msdn.com/Events/PDC/PDC09/FT12
打开顶层阵列的风险是什么?
我该如何检查,看看我是否容易受到伤害?我从第三方购买了许多组件,并有外部供应商开发我的代码.
无法使jQuery自动完成小部件与Flask框架一起使用.(http://jqueryui.com/autocomplete/#remote这里有一个例子)
在manage.py中我得到了以下内容:
@app.route('/autocomplete', methods=['GET'])
def autocomplete():
results = []
search = request.args.get('autocomplete')
for mv in db_session.query(Movie.title).filter(Movie.title.like('%' + str(search) + '%')).all():
results.append(mv[0])
return jsonify(json_list=results)
Run Code Online (Sandbox Code Playgroud)
我的index.html文件:
<head>
...
<link href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" rel="Stylesheet"></link>
<script src="../static/js/jquery.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js" ></script>
<script type="text/javascript">
$(function() {
$.ajax({
url: '{{ url_for("autocomplete") }}'
}).done(function (data) {
$('#autocomplete').autocomplete({
source: data.json_list,
minLength: 2
});
});
});
</script>
...
</head>
<body>
...
<div>
<input name="autocomplete" type="text" id="autocomplete" class="form-control input-lg"/>
</div>
...
</body>
Run Code Online (Sandbox Code Playgroud)
看起来像firefox中的dev工具不会返回任何错误.终端返回以下内容:
"GET/autocomplete HTTP/1.1"200 -
"GET/HTTP/1.1"200 …
我正在尝试JSON使用以下代码呈现PeeWee查询结果:
@app.route('/')
def index():
c = Category.select().order_by(Category.name).get()
return jsonify(model_to_dict(c))
Run Code Online (Sandbox Code Playgroud)
这样做我只从查询中返回一行.我很确定这个问题是我的用法get(),文档明确表示只返回一行.我用什么代替get()取回整个结果?
下面这个问题指出了我正确的方向,但也在使用 get()
json ×3
flask ×2
javascript ×2
python ×2
ajax ×1
autocomplete ×1
jquery ×1
peewee ×1
security ×1
xss ×1