在flask应用程序python中访问静态文件

问题描述 投票:0回答:1

我一直在制作一个简单的网站,该网站使用 keras 在从用户网络摄像头捕获的图像上运行图像分类模型。目前,我的模型保存在我的 Flask 应用程序的静态文件夹中。问题出在模型的实际加载中。当我尝试加载模型时(在 python 文件 app.py 中,其中包含我的 Flask 应用程序)。

@app.route('/')
def init():
    
    model = load_model('/static/model/model.keras')
    return render_template('index.html')

它会抛出找不到文件的错误。

我尝试使用请求加载它并从github编写它,这导致了同样的错误。 我也尝试过做

@app.route('/cdn/<path:filename>')
def custom_static(filename):
    return send_from_directory('/static', filename)

并从中加载它,但同样的错误仍然存在。

python flask keras
1个回答
0
投票

这里的主要问题可能是模型的路径。 Flask(以及一般的 Python)根据当前工作目录查找文件,因此仅给出

'/static/model/model.keras'
可能不起作用,因为它不是绝对路径。

快速修复可以使用

os.path
作为绝对路径。你可以像这样更新你的 app.py 并检查 -

@app.route('/')
def init():
    # Create an absolute path to your model
    model_path = os.path.join(app.root_path, 'static', 'model', 'model.keras')
    model = load_model(model_path)
    return render_template('index.html')

通过使用

app.root_path
,我们可以告诉Python从app文件夹的根目录开始,所以无论脚本运行在哪里,它都会找到model.keras。

© www.soinside.com 2019 - 2024. All rights reserved.