FlaskAPI从python shell运行,但不是在Ubuntu上托管之后运行
我试图将程序的输出作为api公开。我正在使用flask构建我的api。我想在linux机器上运行同样的程序。当我从本地运行脚本时,我能够在上找到输出,但当我尝试从linux环境运行相同的脚本时,它会显示404错误或page not found错误,并且在我的linux shell中没有类似404500的错误代码。如何使它也在我的linux环境中运行?如何测试它是否在linux上工作? 附件代码如下:FlaskAPI从python shell运行,但不是在Ubuntu上托管之后运行,python,linux,api,flask,web-hosting,Python,Linux,Api,Flask,Web Hosting,我试图将程序的输出作为api公开。我正在使用flask构建我的api。我想在linux机器上运行同样的程序。当我从本地运行脚本时,我能够在上找到输出,但当我尝试从linux环境运行相同的脚本时,它会显示404错误或page not found错误,并且在我的linux shell中没有类似404500的错误代码。如何使它也在我的linux环境中运行?如何测试它是否在linux上工作? 附件代码如下: from flask import Flask, request from flask_rest
from flask import Flask, request
from flask_restful import Resource, Api
#from flask.views import MethodView
app = Flask(__name__)
api = Api(app)
class dtext(Resource):
def get(self, result):
return {'data': d.convert(result)}
categories= ["bus", "jack"]
@app.route('/ec')
def returnResult():
return categories[0]
if __name__ == '__main__':
app.run(host="0.0.0.0", port=5000)
您是在Linux机器本身上运行127.0.0.1:5000连接,还是从其他机器连接到Linux机器 您需要确保您的应用程序正在侦听0.0.0.0,否则它将只接受本地主机(自身)的连接 如果无法在端口5000上与linux机器建立任何连接,则需要查看防火墙规则
flask run--host=0.0.0.0
来运行应用程序。(这对于生产代码来说是个坏主意)[IP Address]/ec
),您应该会看到结果。
您的服务器是虚拟机还是在本地网络或云上您能否尝试使用
app.run(host='0.0.0',port=5000)
?您需要获取linux机器的IP地址,例如IP地址
,并在浏览器中使用此IP,而不是127.0.0.1
。此外,在您的代码中,您仅声明路由/ec
,但在上面的文本中,如果我删除/ec并给出@app.route('/'),您尝试调用//code>@Martin,那么当我输入我的机器的IP时,它应该显示正确?我已对代码进行了更改,并在问题部分发布了相同的更改。但是仍然会出现相同的错误“无法访问此站点”您知道您正在连接的linux机器的IP地址/DNS名称吗?这个问题似乎与联系机器有关,而不是与您的代码有关。是的,我知道IP地址,输入相同的地址,但仍然没有响应。您可以通过任何其他方式联系此Linux服务器吗?能否ping Linux服务器(低于端口级别,以便检查您是否有访问权限)?它将取决于您如何配置它,一些例子是SSH、FTP、其他端口上的HTTP?请检查Linux服务器上的端口5000是否打开。我使用kill$(sudo lsof-t-I:5000)和fuser-k 5000/tcp杀死了端口5000上所有正在运行的进程。。我当前已登录到虚拟机。我可以在它里面工作,但是当我从cmd ping它时,它说没有响应。这会是问题吗?
app.run(host="0.0.0.0", port="5000")