Flask hängt beim Senden einer Postanforderung an sich selbst

9

Ich versuche, eine Post-Anfrage an meine Flask-App von einer seiner eigenen Ansichten zu senden, aber es hängt, bis ich den Server töte. Wenn ich die Anfrage in JavaScript mache, funktioniert es gut. Warum funktioniert es nicht mit dem Python-Code?

%Vor%     
Sebastian Karlsson 26.10.2015, 18:38
quelle

2 Antworten

17

Flasks Entwicklungsserver ist standardmäßig single-threaded. Es kann immer nur eine Anfrage bearbeiten. Eine Anforderung wird blockiert, bis sie die Antwort erhält. Ihr Flask-Code erstellt eine Anfrage in dem einen Thread und wartet dann. Es gibt keine anderen Threads, die diese zweite Anforderung verarbeiten. Daher wird die Anfrage nie abgeschlossen und die ursprüngliche Anfrage wartet für immer.

Aktivieren Sie mehrere Threads oder Prozesse auf dem Dev-Server, um den Deadlock zu vermeiden und das unmittelbare Problem zu beheben.

%Vor%

Eine vollständige HTTP-Anfrage an die App innerhalb der App sollte jedoch niemals erforderlich sein und weist auf ein tieferes Designproblem hin. Beachten Sie beispielsweise, dass die interne Anfrage keinen Zugriff auf die Sitzung im Browser des Clients hat. Extrahieren Sie den allgemeinen Code und rufen Sie ihn intern auf, anstatt eine neue Anforderung zu erstellen.

    
davidism 26.10.2015, 19:11
quelle
0

Ich kenne Flask nicht. Aber dieses bisschen Code:

%Vor%

Es scheint so, als ob Sie ein gepostete Formular akzeptieren, es bestätigen und es dann erneut posten. Immer und immer wieder.

    
John Gordon 26.10.2015 19:07
quelle

Tags und Links