Tôi đã đập đầu vào phương pháp này trong Flask một thời gian, và trong khi có vẻ như tôi đang tiến bộ, tôi vừa mới xảy ra thứ gì đó khiến tôi không có kết thúc. Đây là phương pháp tôi đang gọi:Ứng dụng Flask tăng 500 lỗi mà không có ngoại lệ
@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)
Trong một thời gian dài, tôi đã nhận được lỗi ở đây, sau đó sẽ được ghi lại trong nhật ký heroku. Hiện tại không có lỗi, ngụ ý rằng nó không đạt đến vòng lặp ngoại trừ, nhưng thậm chí tệ hơn, vẫn còn 500 lỗi. Cụ thể, 500 lỗi tôi nhận được là:
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
tôi gửi những POST
yêu cầu qua AJAX trong phương pháp này:
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!");
}
});
Khá thật tôi chỉ không biết làm thế nào để tiếp tục gỡ rối vấn đề này. Nó không có nhiều ý nghĩa với tôi để có được một traceback mà không có một ngoại lệ, nhưng có lẽ tôi chỉ là ngây thơ.
Tôi đang sử dụng mongoengine trên đầu trang của MongoHQ trên Heroku nếu điều đó có liên quan.
Thử thêm "GET" vào phương thức. – solusipse
Tôi đã thêm nó, không có thay đổi. Không chắc chắn tại sao sẽ có ... –
Có thể thay đổi '@ app.route ('/ facesata/'' thành '@ app.route ('/ facesata/ /' hoặc 'url: document.location.origin +"/facesata/"+ slug,' to 'url: document.location.origin +"/facesata/"+ slug +"/",' sẽ trợ giúp. –
solusipse