2017-08-17 4 views
-1

ich mit dem folgenden Code eine POST-Anforderung in Python mit Flask zu analysieren versuchen genannt zu werden:POST-Handler-Methode nicht in Python/Flask

from flask import Flask, request 
app = Flask(__name__) 
@app.route('/csv', methods=['POST']) 
def handle_message(): 
    print("This print statement never gets called") 
    return 'Received !' 

if __name__ == '__main__': 
    app.run( 
    host="0.0.0.0", 
    port=int("5000") 
) 

Ich mache die POST-Anforderung von einer anderen Maschine, und ich weiß, es ist richtig, weil ich auf der Kommandozeile bekommen dies gemacht (obwohl ich nicht sicher bin, was in meinem Code speziell es gedruckt wird):

10.0.0.36 - - [17/Aug/2017 16:28:49] "POST /csv HTTP/1.1" 200 - 

jedoch die handle_message Funktion scheint nie (die print-Anweisung aufgerufen werden, innerhalb ist nie ausgeführt). Könnte jemand wissen, was vor sich geht?

+0

Haben Sie versucht, auf den Debug-Modus dreht? Es wird normalerweise nicht gedruckt, wenn Sie den Debug-Modus nicht aktivieren. Außerdem können Sie einfach '5000' eingeben, Sie müssen nicht int (" 5000 ") eingeben. –

+0

' print' wird nie als Teil der Serverantwort zurückgegeben. –

+0

Ich kann Ihr Problem nicht reproduzieren. 'print' wird tatsächlich wie vorgesehen an das Terminal ausgegeben. Bitte [bearbeiten], um ein [mcve] einzuschließen. – davidism

Antwort

1

Ihr Code auf meinem Rechner: Server-Seite:

This print statement never gets called 
127.0.0.1 - - [17/Aug/2017 23:46:09] "POST /csv HTTP/1.1" 200 - 

Client-Seite, Befehl von httpie

http POST http://127.0.0.1:5000/csv 

Antwort

HTTP/1.0 200 OK 
Content-Length: 10 
Content-Type: text/html; charset=utf-8 
Date: Thu, 17 Aug 2017 20:46:09 GMT 
Server: Werkzeug/0.11.15 Python/3.5.3 

Received !