gpt4 book ai didi

python - Flask 中的 500 HTTP 异常,同时尝试通过 app.open_resource() 读取文件

转载 作者:太空宇宙 更新时间:2023-11-04 02:05:09 25 4
gpt4 key购买 nike

差不多是标题。我在我的本地计算机上尝试了代码并且它很好但是在部署时(Phusion Passenger)这似乎不起作用。

from flask import Flask
import flask
import json
import os

app = Flask(__name__)


@app.route('/mods')
def mods_index():
try:
reader = app.open_resource(os.path.join(app.root_path , 'static', 'data', 'modifications.json'))
modifications = json.load(reader)
reader.close()
except:
flask.abort(500)
return flask.render_template('mods_index.html', mods=modifications)

最佳答案

我认为这是一个文件路径问题,特别是这一行:reader = app.open_resource(os.path.join(app.root_path , 'static', 'data', 'modifications.json'))看起来不正确。

根据 Flask 的 documentation : app.open_resource(...)从应用程序的资源文件夹中打开资源”。在您的代码中,您指定应用程序的根路径两次:

  1. 首先使用 app.open_resource(....)
  2. 然后再次使用:app.root_path

因此您的服务器正在尝试打开您的 modifications.json文件来自:<app_root_path>/<app_root_path/static/data/modifications.json而不是 <app_root_path>/static/data/modifications.json其中 <app_root_path>是您的应用程序的根目录。所以解决方案是摆脱其中一个双重 <app_root>提及。也许您可以尝试以下操作:

reader_path = os.path.join('static', 'data', 'modifications.json'))
with app.open_resource(reader_path) as f:
contents = f.read()
# do_something_with(contents)

希望对您有所帮助!

关于python - Flask 中的 500 HTTP 异常,同时尝试通过 app.open_resource() 读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54890195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com