gpt4 book ai didi

python - Flask 根路径 - app.root_path、current_app.root_path 等不起作用

转载 作者:行者123 更新时间:2023-12-05 07:35:34 46 4
gpt4 key购买 nike

我不敢相信这会这么难。我在网上评分试图找到解决方案,但仍然无法访问我的 Flask 应用程序的 root_path。更糟糕的是,它在一个文件中有效,而在另一个文件中却无效。这是我尝试过的:

from flask import current_app

file_path = os.path.join(os.path.abspath(current_app.root_path, 'dir/for/my/files/'))
# ERROR: RuntimeError: Working outside of application context.

# I added ROOT_PATH to my settings.py file
file_path = os.path.join(os.path.abspath(app.config['ROOT_PATH'], 'dir/for/my/files/'))
# ERROR: RuntimeError: Working outside of application context.

file_path = os.path.join(os.path.abspath(current_app.instance_path, 'dir/for/my/files/'))
# ERROR: RuntimeError: Working outside of application context.

上面的文件在我的 controllers 文件夹中。我正在使用基于 Flask-Foundation 的应用程序工厂模式.

我读了docs about the application context我只是不明白。我试过:

import app
with app.app_context():
...
# ERROR: AttributeError: module 'app' has no attribute 'app_context'

在我让它工作的文件中,我有:

import app_name
@bp.route('/')
def index():
file_path = os.path.join(app_name.app.root_path(current_app.root_path, 'dir/for/my/files/'))

这似乎不是正确的做法。但它有效。如果我在同一文件夹中的其他文件上尝试相同的操作,则它不起作用。

我为此焦头烂额......感谢任何帮助!谢谢。

最佳答案

我想通了。很简单。

您不能在文件的根目录上调用 current_app.config['KEY_VALUE']。它应该始终在 def 或类定义中,然后在 def 中实例化。

关于python - Flask 根路径 - app.root_path、current_app.root_path 等不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49482003/

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