我正在尝试使我的api是有公共IP使用女服务员或正常的烧瓶连接,但我不能。
app = Flask(__name__)
mysql = MySQL()
@app.route('/')
def index():
return "Hello, world!"
if __name__ == "__main__":
# waitress.serve(app=app, host="0.0.0.0", port=5013)
app.run(host="10.0.***", port=5013, debug=True, threaded=True)我只能从我的机器访问它。但是,当我试图从外部访问(即任何手机或平板电脑)时,我无法访问它。
发布于 2021-04-25 12:07:03
虽然这是可能的,但您不应该在生产中使用Flask开发服务器。Flask dev服务器的设计不是特别安全、稳定或高效。有关正确的解决方案,请参阅deploying上的文档。
flask run的--host选项或app.run()的host参数控制开发服务器侦听的地址。默认情况下,它在localhost上运行,将其更改为flask run --host=0.0.0.0 (或app.run(host="0.0.0.0")),以便在您计算机的所有IP地址上运行。
0.0.0.0是一个特殊的值,您不能直接在浏览器中使用,您需要导航到网络上机器的实际IP地址。您可能还需要调整防火墙以允许外部访问端口。
Flask quickstart docs在“外部可见服务器”一节中解释了这一点:
如果您运行该服务器,您会注意到该服务器只能从您自己的计算机访问,而不能从网络中的任何其他计算机访问。这是默认设置,因为在调试模式下,应用程序的用户可以在您的计算机上执行任意Python代码。
如果您禁用了调试器或信任网络上的用户,则只需将--host=0.0.0.0添加到命令行即可使服务器公开可用:
$ flask运行--host=0.0.0.0
这将告诉您的操作系统侦听所有公共IP。
https://stackoverflow.com/questions/67249225
复制相似问题