Przez pewien czas waliłem głową w tą metodę w Flasku, i chociaż wydaje mi się, że robię postępy teraz, właśnie wydarzyło mi się coś, co zbija mnie z tropu. bez końca. Oto metoda, którą nazywam:Aplikacja kolby podnosi błąd 500 bez żadnego wyjątku
@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)
Przez długi czas dostałem tu błędy, które następnie zostałyby przechwycone w dziennikach Heroku. Obecnie nie ma błędów, co sugeruje, że nie dochodzi do pętli wyjątkowej, ale co gorsza, wciąż jest 500 błędów. Konkretnie 500 Błędy dostaję to:
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
wyślę te POST
żądań za pośrednictwem AJAX w tej metodzie:
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!");
}
});
Szczerze mówiąc ja po prostu nie wiem jak kontynuować debugowania tego problemu. To nie ma większego sensu, bym otrzymywał traceback bez wyjątku, ale może po prostu jestem naiwny.
Używam mongoengine na MongoHQ na Heroku, jeśli to jest istotne.
Spróbuj dodać "GET" do metod. – solusipse
Dodałem go, nie było żadnej zmiany. Nie wiem, dlaczego ... –
Może zmiana '@ app.route ('/ facedata/'' na '@ app.route ('/ facedata/ /' lub 'url: document.location.origin +"/facedata/"+ slug" do 'url: document.location.origin +"/facedata/"+ slug +"/",' pomogłoby –
solusipse