Hom*_*lli 6 python tornado flask
我已经按照在线文档安装了GNU health FHIR REST服务器.
我设法让我的服务器机器上运行REST服务器应用程序.根据文档,我的服务器应该提供以下端点:
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 ...
Run Code Online (Sandbox Code Playgroud)
这是用于启动Tornado服务器的Python代码:
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()
Run Code Online (Sandbox Code Playgroud)
我曾经curl试图询问服务器:
curl http://localhost:5000/Patient
curl: (7) Failed to connect to localhost port 5000: Connection refused
Run Code Online (Sandbox Code Playgroud)
注意:我猜测(从上面粘贴的代码),Tornado服务器正在侦听端口5000.我修改了代码以打印出`options.port的值,但由于某种原因,它没有被打印到控制台; 也无法将值记录到文件(文件未写入,并且没有给出错误消息) - 所以不确定是什么进行.
我仔细检查了lsof看哪些端口是打开的:
$ 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)
Run Code Online (Sandbox Code Playgroud)
我需要帮助确定Tornado运行的端口,所以我可以使用curl来查询REST API.
小智 0
如果权限问题或该端口上没有任何运行,连接将被拒绝。在你的情况下,我猜 5000 上没有任何东西在运行。
请使用此命令检查
SS-LTP
您可能必须使用sudo列出具有端口和用户的所有 tcp 连接
(例如)sudo ss -ltp
我的输出:
听0 128 *:6379 : 用户:((“redis服务器”,pid = 12325,fd = 5))
注意:我只是在这里列出了我的列表中的一个输出。
这只是告诉我 redis 正在 6379 端口上运行。
如果龙卷风正在运行,它会在触发此命令时为您列出。
如果您在这方面遇到任何问题,请告诉我。