Sla*_*off 29 python exception heroku flask
我已经在Flask中反对这种方法了一段时间了,虽然现在看来我正在取得进展,但我发现了一些让我感到困惑的事情.这是我正在调用的方法:
@app.route('/facedata/<slug>', methods=["POST"])
def facedata(slug):
if request.method == "POST":
try:
post = Post.objects.get_or_404(slug=slug)
data = [float(item) for item in request.form.getlist('emotions[]')]
post.face_data.append(data)
post.save()
except:
traceback.print_exc(file=sys.stdout)
Run Code Online (Sandbox Code Playgroud)
很长一段时间我在这里遇到错误然后会被heroku日志记录下来.目前没有错误,暗示它没有到达except循环,但更糟糕的是,仍然有500个错误.特别是我得到的500个错误是:
heroku[router]: at=info method=POST path=/facedata/StripedVuitton host=cryptic-mountain-6390.herokuapp.com fwd="18.111.90.180" dyno=web.2 connect=4ms service=39ms status=500 bytes=291
Run Code Online (Sandbox Code Playgroud)
我POST通过这种方法通过AJAX 发送这些请求:
var slug = document.getElementById("hidden-slug").getAttribute("value");
data = {emotions: lRes};
$.ajax({
type: "POST",
data: data,
url: document.location.origin + "/facedata/" + slug,
success: function(){
console.log("Success!");
}
});
Run Code Online (Sandbox Code Playgroud)
老实说,我只是不知道如何继续调试这个问题.在没有例外的情况下获得追溯对我来说没有多大意义,但也许我只是天真.
如果相关的话,我在Heroku上的MongoHQ上使用mongoengine.
Sla*_*off 47
在击败了我的头后,我终于想通了,感谢pocoo google小组中的那些人(我已经知道有一个单独的烧瓶列表).首先,我需要打开PROPAGATE_EXCEPTIONS我的应用配置中的选项(http://flask.pocoo.org/docs/config/#builtin-configuration-values).
在那之后,我意识到没有从视图函数返回响应的问题,Flask将此方法解释为.既然如此,只需添加以下内容即可解决此问题:
return jsonify(result={"status": 200})
Run Code Online (Sandbox Code Playgroud)
到try块结束.我希望这可以帮助将来处于类似情况的人.
| 归档时间: |
|
| 查看次数: |
34905 次 |
| 最近记录: |