【问题标题】:Problems with external visibility of Flask web-serverFlask Web 服务器的外部可见性问题
【发布时间】:2013-02-28 21:36:52
【问题描述】:

我已经成功安装了烧瓶并运行了 hello-world 脚本:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

这让我印象深刻。然后我想让我的网络服务器在外部可见。按照建议,我将host='0.0.0.0' 作为运行函数的参数。然后我找到了我的 IP 地址(在 Google 中)并将它放在我的网络浏览器的地址行中(当 hello-world-script 正在运行时)。

结果我得到:“正在请求用户名和密码”和一个对话框,我需要在其中输入用户名和密码。我不确定,但我认为它来自我的无线网络。有没有办法改变这种行为?

【问题讨论】:

  • 顺便说一句,-1 表示使 开发服务器 在外部可用。获取一个严肃的服务器 (Nginx/Apache/Gunicorn) 或使用 PAAS (OpenShift/AppFog/...)。

标签: python flask http-status-code-401


【解决方案1】:

您是如何尝试运行您的应用程序的?如果您以app.run() 运行flask - flask 在您的主机(by default 127.0.0.1)和端口(@98​​7654322@)上创建自己的WSGI 服务器(如果端口

现在看起来您希望通过端口获取应用程序,该应用程序可以解析您的服务器,如 nginx 或 Apache。尝试通过http://your-server-host-or-ip:5000 使用默认端口获取flask 应用程序,或者尝试更改端口(设置显式),如app.run('0.0.0.0', 8080) 并通过http://your-server-host-or-ip:8080 获取。

顺便说一句,您始终可以使用命令行工具获取 IP 地址,例如ifconfig 用于类 Unix 系统,ipconfig /all 用于 Windows。

【讨论】:

  • 那么响应“正在请求用户名和密码”不是来自他的服务器。但是他无法访问 NAT 后面的服务器。
【解决方案2】:

为了详细说明@tbicr 所说的内容,该密码提示表明您正在尝试连接到端口 80 上的 IP,该端口很可能托管您的路由器/调制解调器的管理页面。您想在端口 5000 上连接到您的 IP,Flask 应用程序的默认端口使用app.run() 运行。

【讨论】:

    猜你喜欢
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多