当我在浏览器中打开链接0.0.0.0:5000时,我总是在浏览器上收到消息"此网站无法到达" 因为我在控制台上收到此消息,所以代码似乎正在工作
在http://0.0.0.0:5000/上运行(按CTRL + C退出)
这是我正在使用的代码
from flask import Flask, render_template, request
from scipy.misc import imsave, imread, imresize
import numpy as np
import keras.models
import re
import sys
import os
from load import *
sys.path.append(os.path.abspath('./model'))
app = Flask(__name__)
global model, graph
model, graph = init()
def convertImage(imData):
imgstr = re.search(r'base64(.*'.imData).group(1)
with open('output.png', 'wb') as output:
output.write(imgstr.decode('base64'))
@app.route('/')
def index():
return render_template('index.html')
@app.route('/predict', methods=['GET', 'POST'])
def predict():
imData = request.get_data()
convertImage(imData)
x = imread('output.png', mode = 'L')
x = np.invert(x)
x = imresize(x, 48, 48)
x = x.reshape(1,48,48,1)
with graph.as_default():
out = model.predict(x)
response = np.array_str(np.argmax(out))
return response
if __name__ == "__main__":
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
答案 0 :(得分:2)
一般来说,这条消息
在http://0.0.0.0:5000/上运行(按CTRL + C退出)
通知您将收听您接受请求的PC的IP地址。它可以配置为只侦听一个IP地址。
正如评论中所述,如果您尝试从开发的同一台PC访问您的网站,您可以使用虚拟(循环)地址127.0.0.1
。如果您想检查您的网站在连接到同一网络的其他设备上的外观(例如平板电脑,手机,其他PC等),您需要输入PC的内部网络IP地址,它与循环。它可以是例如192.168.1.1(您应该在您的NIC属性上检查它)。如果您尝试为您的朋友制作类似现场演示的内容,它可能会发生变化。
因此,为了防止您每次检查哪一个IP地址对您的PC有效,您可以使用0.0.0.0
告诉您的应用程序'侦听来自所有NIC的传入请求,无论他们拥有什么IP地址'。
答案 1 :(得分:1)
对我来说,使用app.run(debug=False)
时可以使用
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
没有。
我不知道这是防火墙问题还是为什么不起作用。请注意,这样做之后,它开始在http://127.0.0.1:5000/
托管。
答案 2 :(得分:0)
绝对使用您的本地主机使用127.0.0.1而不是0.0.0.0
答案 3 :(得分:0)
要在本地进行测试,可以使用 http://localhost:5000 代替 http://0.0.0.0:5000