首页 > 解决方案 > 从烧瓶中找到实际调用以在端口 5000 上运行

问题描述

这个问题可能有点奇怪,但是我没有接触过的人写了一个程序,我应该适应它。

它启动了一个本地python程序,该程序在端口5000上与flask一起运行,因此当我编写:5000时,我可以通过几个按钮访问网页,但我发现的.py文件并未在程序中的任何位置设置端口,它只调用:

app.run(debug=False, host='0.0.0.0')

和几个

@app.route('/DoSomething', methods=['POST', 'GET']

文件夹中还有一些文件,它们也不包含端口......当我输入

cat ./* | grep :5000

我找到了几条线,但我不知道它们的去向

我不是这个主题的真正专家 - 从未使用过烧瓶或创建任何可以通过 URL 访问的应用程序......有人可能知道我在这里缺少什么/我可能在哪里找到更多信息?

标签: pythonflask

解决方案


由于您引用的行不包含port关键字参数的值,因此默认为端口 5000,这是docs的预期行为。

在查找发生这种情况的实际行方面,该行位于烧瓶源代码中应用程序对象的run方法中:Flask

_host = '127.0.0.1'
_port = 5000
server_name = self.config.get('SERVER_NAME')
sn_host, sn_port = None, None

if server_name:
    sn_host, _, sn_port = server_name.partition(':')

host = host or sn_host or _host
port = int(port or sn_port or _port)

此代码默认主机和端口,然后根据SERVER_NAME应用程序配置中定义的或传递的主机和端口信息覆盖它们。

关于 grep 单行的注释

这与最初的问题无关,但是:

cat ./* | grep :5000

应改写为:

grep 5000 ./*

它将用文件名注释匹配的行,并为您节省对 cat 的无用使用。


推荐阅读