记录一个小坑。
这段时间用Flask写了一个小项目,用于局域网内提供restful服务,起到一个连接各个软件的作用吧,然后今天查了一下:
from flask import Flask
# Flask初始化参数尽量使用你的包名,这个初始化方式是官方推荐的,官方解释:http://flask.pocoo.org/docs/0.12/api/#flask.Flask
app = Flask(__name__)
@app.route('/HelloWorld')
def hello_world():
return "Hello World!"
if __name__ == "__main__":
# 这种是不太推荐的启动方式,我这只是做演示用,官方启动方式参见:http://flask.pocoo.org/docs/0.12/quickstart/#a-minimal-application
app.run(debug=True)
这是一种常见的访问方式,主要提供本机访问,这一步倒是没什么问题。当我尝试用外网去访问的时候,官方教我们的是:
from flask import Flask
# Flask初始化参数尽量使用你的包名,这个初始化方式是官方推荐的,官方解释:http://flask.pocoo.org/docs/0.12/api/#flask.Flask
app = Flask(__name__)
@app.route('/HelloWorld')
def hello_world():
return "Hello World!"
if __name__ == "__main__":
# 这种是不太推荐的启动方式,我这只是做演示用,官方启动方式参见:http://flask.pocoo.org/docs/0.12/quickstart/#a-minimal-application
app.run(host="0.0.0.0", debug=True)
# app.run(debug=True)
然后我就这么设了,发现内网外网用这个ip都访问不了。
后来谷歌,百度了好久,好多回答没一个在点上的,最后终于找到一个靠谱的回答,但是现在找不到地方了,这里自己做一个记录。
用python开启flask web服务时,
(1)你只需要本机访问,那ip只要不设置为0.0.0.0就可以,正常访问就好
(2)如果你需要外网访问,ip需要设置为0.0.0.0,此时,在本机上访问需要使用默认的127.0.0.1(也就是你不设置ip时默认的ip),在外网上访问则需要使用你本机的ip,不要使用0.0.0.0