repl.it环境运行Flask应用无法访问127.0.0.1:5000问题求助
问题原因与解决方案
问题原因
127.0.0.1是本地回环地址,仅允许当前设备内部访问。repl.it属于云端运行环境,你的Flask服务跑在repl的远端容器中,你本地浏览器访问127.0.0.1只会请求你自己的电脑,无法到达repl的运行容器。- Flask默认
app.run()仅绑定127.0.0.1地址,就算是repl平台内部的外部请求也会被拦截,无法对外开放访问。
解决方法
第一步:修改Flask启动配置
把你main.py里的启动代码替换为如下内容:
# 可以把import os放到文件顶部,和其他导入语句写在一起 import os if __name__ == "__main__": # 绑定0.0.0.0允许所有网段的请求访问,端口优先读取repl自动分配的环境变量值,兜底用5000 app.run(host='0.0.0.0', port=os.getenv('PORT', 5000))
如果不想引入os依赖,也可以直接写固定配置,repl平台也能正常识别:
if __name__ == "__main__": app.run(host='0.0.0.0', port=5000)
第二步:使用repl提供的公开地址访问
修改代码重新运行后,repl.it界面会自动弹出可公开访问的应用链接,控制台输出里也会显示repl生成的专属域名地址,直接点击或者复制到浏览器访问即可,不要再用127.0.0.1:5000访问。
额外说明
你控制台输出的生产环境警告仅为通用提示,如果你只是在repl上做开发测试不需要处理,如果需要正式部署再替换为Gunicorn、uWSGI等生产级WSGI服务器即可。
内容的提问来源于stack exchange,提问作者ferg
相关产品推荐
相关产品推荐

