我已经成功安装了flask并运行了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'
作为run函数的参数。然后我找到了我的IP地址(在谷歌),并把它放在我的web浏览器的地址行(当hello-world脚本运行时)。
结果我得到:"用户名和密码正在请求"和一个对话框,我需要把用户名和密码。我不确定,但我想它来自我的无线网络。有办法改变这种行为吗?
如何运行您的应用程序?如果你将flask作为app.run()
运行,flask会在你的主机(默认为127.0.0.1)和端口(默认为5000)上创建自己的WSGI服务器(如果端口<1000)。如果你使用nginx + WSGI或其他方式运行flask,你的服务器会解析host和port。
现在看起来你想通过端口解析你的服务器,如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地址,例如,类unix系统的ifconfig
,或Windows的ipconfig /all
。
详细说明一下@tbicr所说的内容,该密码提示表明您正在尝试连接到端口80上的IP,该端口很可能承载了路由器/调制解调器的管理页面。你想在端口5000上连接到你的IP,这是使用app.run()
运行的Flask应用的默认端口。