【发布时间】:2019-07-11 02:17:29
【问题描述】:
这是我的路线.py
@app.route('/test', methods=['POST', 'GET'])
def test():
# form = BrandChoice()
# email = request.form['email']
# name = request.form['name']
choice = request.form['choice']
print(choice)
q = session.query(Brand.brand).filter(Brand.pid == choice)
print(q)
return jsonify({'choice': q })
这是我的 test.js 文件
$(document).ready(function() {
$('form').on('submit', function(event) {
$.ajax({
data : {
name : $('#nameInput').val(),
email : $('#emailInput').val(),
choice : $('#brandInput').val()
},
type : 'POST',
url : '/test'
})
.done(function(data) {
if (data.error) {
$('#errorAlert').text(data.error).show();
$('#successAlert').hide();
}
else {
$('#errorAlert').text(data.choice).show();
$('#successAlert').text(data.name).show();
// $('#errorAlert').hide();
}
});
event.preventDefault();
});
});
我不太明白为什么我无法显示查询结果。例如,如果我用名称替换我的“q”,它会按预期工作。
如何返回我的查询结果,以便在我的 errorAlert 中显示它?
【问题讨论】:
-
并非所有对象都可以序列化为 JSON,这就是您的代码中发生的情况。
-
我认为开箱即用的只有列表/元组、字典、布尔值、字符串和数字可以序列化为 JSON。这些可以用原生类型的 JSON 来表示。对于任何复杂类型,您可以查看此问题Method to serialize custom object to JSON in Python
-
您的
q是一个Query对象。您可以使用Query.all()将其具体化为一个列表,但结果可能仍然不是 JSON 可序列化的。
标签: javascript json flask sqlalchemy