本地无法访问Flask应用URL,报ERR_ADDRESS_INVALID错误求助
解决Flask应用本地访问0.0.0.0:9696报错的问题
看到你遇到了这个错误:
"This site can’t be reachedThe webpage at http://0.0.0.0:9696/ might be temporarily down or it may have moved permanently to a new web address. ERR_ADDRESS_INVALID"
别担心,这个问题很常见,我来帮你快速解决!
核心原因
你代码里设置的host='0.0.0.0'是服务器端的配置,它的作用是让Flask监听所有可用的网络接口(比如同一局域网里的其他设备也能访问你的应用),但0.0.0.0并不是一个可以直接在浏览器输入的有效访问地址——浏览器无法解析这个地址,所以才会报错。
立刻解决的方法
把浏览器里的地址改成下面任意一个即可:
http://localhost:9696/http://127.0.0.1:9696/
这两个地址都是标准的本地回环地址,浏览器能直接识别并访问到你本地运行的Flask应用。
额外的性能优化建议
看了你的代码,发现每次收到请求时都会重新加载一次模型文件,这会导致响应变慢,还会浪费IO资源。建议把模型加载的代码移到路由外面,在应用启动时只加载一次:
import pickle from flask import Flask, request, jsonify from model_files.ml_model import predict_mpg app = Flask("mpg_prediction") # 应用启动时加载模型,全局复用 with open('./model_files/mpg_model.bin', 'rb') as f_in: mpg_model = pickle.load(f_in) @app.route('/', methods= ['POST']) def predict(): vehicle_configuration = request.get_json() predictions = predict_mpg(vehicle_configuration, mpg_model) response = {'mpg_predictions': list(predictions) } return jsonify(response) if __name__ == '__main__': app.run(debug= True , host= '0.0.0.0' , port=9696)
这样修改后,你的应用响应速度会明显提升,也避免了重复读取文件的操作。
内容的提问来源于stack exchange,提问作者Uthman




