Ich habe die Online-Dokumentation für die Installation eines gefolgt.Flask + Tornado-Anwendung - wie mit Server kommunizieren (Verbindung verweigert)
Ich habe es geschafft, die REST-Server-Anwendung auf meinem Server-Rechner laufen zu lassen. According to the documentation sollten folgende Endpunkte von meinem Server verfügbar sein:
List all patients (http://localhost:5000/Patient)
Show info for patient id #1 (http://localhost:5000/Patient/1)
List all patients with ana in name (http://localhost:5000/Patient?name=ana)
# etc ...
Dies ist der Python-Code, der den Tornado-Server starten verwendet wird:
from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, options
from app import create_app
from config import ProductionConfig
define("port", default=5000, help="Port to listen on", type=int)
#app = create_app(config=ProductionConfig)
app = create_app() #DebugConfig
http_server = HTTPServer(WSGIContainer(app))
http_server.listen(options.port)
IOLoop.instance().start()
ich curl
den Server abzufragen, um zu versuchen, verwendet:
curl http://localhost:5000/Patient
curl: (7) Failed to connect to localhost port 5000: Connection refused
Hinweis: ich vermute ich (aus dem obigen Code eingefügt), dass der Tornado-Server hört Port 5000 ab. Ich habe den Code geändert, um den Wert von `options.port auszudrucken, aber aus irgendeinem Grund wird er nicht auf die Konsole gedruckt. es ist auch nicht gelungen, den Wert einer Datei zu protokollieren (Datei nicht geschrieben und keine Fehlermeldung angegeben) - also nicht sicher, was los ist.
Ich doppelt mit lsof
überprüft, um zu sehen, welche Ports offen sind:
$ lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python2 23147 morpheous 4u IPv6 592698 0t0 TCP localhost:51950->localhost:8000 (ESTABLISHED)
ich Hilfe bei der Einrichtung müssen die Port Tornado läuft, so kann ich curl die REST-API abfragen.
Dieser Code sieht korrekt aus, und es funktioniert, wenn ich meine eigene create_app-Funktion ersetze. Das Problem muss etwas in den 'app'- oder' config'-Modulen sein. –
@BenDarnell an welchem Port lief Ihre Tornado-Instanz? Außerdem wollte ich in meiner Frage wissen, wie man mit dem Server "curl" spricht - wie würde ich das machen? –
Weißt du auch, wie ich den Tornado-Anwendungscode debuggen kann (Code in meiner Frage). Die Möglichkeit, Variablen nicht in der Konsole zu drucken oder zu protokollieren, erschwert das Debuggen und Beheben des Problems. –