Python Flask web服务器的外部可见性问题

Python Flask web服务器的外部可见性问题,python,flask,http-status-code-401,Python,Flask,Http Status Code 401,我已成功安装flask并运行hello world脚本: from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run() 让我印象深刻的是这是多么容易。然后我想让我的web服务器在外部可见。根据建议,我将host='0.0.0.0'作为run函数的参数。然后我找

我已成功安装flask并运行hello world脚本:

from flask import Flask
app = Flask(__name__)

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

if __name__ == '__main__':
    app.run()
让我印象深刻的是这是多么容易。然后我想让我的web服务器在外部可见。根据建议,我将
host='0.0.0.0'
作为run函数的参数。然后我找到了我的IP地址(在Google中),并将它放在我的web浏览器的地址行中(当hello world脚本运行时)


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

您是如何运行应用程序的?如果您以
app.run()
-flask在主机()和端口()上创建自己的WSGI服务器(如果端口<1000,则需要权限)。如果您使用nginx+WSGI等运行flask,那么您的服务器将解析主机和端口

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


顺便说一句,您可以使用命令行工具获取IP地址,例如,对于类Unix系统,可以使用ifconfig,或者对于Windows,可以使用ipconfig/all,最有可能为您的路由器/调制解调器托管管理页面。您希望连接到端口5000上的IP,该端口是使用
app.run()

运行Flask应用程序的默认端口,然后响应“正在请求用户名和密码”不是来自他的服务器。然而,为了使开发服务器在外部可用,他无法访问NAT.BTW,-1后面的服务器。获取一个严肃的服务器(Nginx/Apache/Gunicorn)或使用PAAS(OpenShift/AppFog/…)。