python - 从烧瓶中找到实际调用以在端口 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 访问的应用程序......有人可能知道我在这里缺少什么/我可能在哪里找到更多信息?
解决方案
由于您引用的行不包含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 的无用使用。
推荐阅读
- excel - 如何执行excel表的测试记录(一行)而不使测试记录在selenium(testng)中失败
- julia - 如何使用 Plots.jl 在 Julia 中显示情节?
- spring - Spring WebTestClient bindToController 用法
- java - 命令行参数传递给调用方法
- mysql - 准时餐厅点餐系统的数据库设计?
- julia - Julia 函数结果每次换档都会改变
- javascript - 我正在尝试使用我创建的反应函数根据键和值参数对对象数组进行排序
- microsoft-graph-api - 列出频道消息不返回完整的消息列表
- angular - 在项目“前端”中找不到目标“服务器”
- python - python返回语句概念