首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flask分配公网IP

Flask分配公网IP
EN

Stack Overflow用户
提问于 2021-04-25 10:30:36
回答 1查看 190关注 0票数 0

我正在尝试使我的api是有公共IP使用女服务员或正常的烧瓶连接,但我不能。

代码语言:javascript
复制
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)

我只能从我的机器访问它。但是,当我试图从外部访问(即任何手机或平板电脑)时,我无法访问它。

EN

回答 1

Stack Overflow用户

发布于 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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67249225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档