gpt4 book ai didi

python - 在 Flask shell 中运行 Flask 应用程序时出现 AttributeError

转载 作者:太空宇宙 更新时间:2023-11-03 20:13:59 25 4
gpt4 key购买 nike

我已经完成了一个 flask 应用程序。当我通过 python run.py 运行它时,该应用程序可以完美运行。

但是当我想通过 flask shell 打开 Flask shell 甚至只是 flask 时,它告诉我:

Traceback (most recent call last):
File "f:\programs\anaconda\envs\web\lib\site-packages\flask\cli.py", line 556, in list_commands
rv.update(info.load_app().cli.list_commands(ctx))
File "f:\programs\anaconda\envs\web\lib\site-packages\flask\cli.py", line 388, in load_app
app = locate_app(self, import_name, name)
File "f:\programs\anaconda\envs\web\lib\site-packages\flask\cli.py", line 257, in locate_app
return find_best_app(script_info, module)
File "f:\programs\anaconda\envs\web\lib\site-packages\flask\cli.py", line 83, in find_best_app
app = call_factory(script_info, app_factory)
File "f:\programs\anaconda\envs\web\lib\site-packages\flask\cli.py", line 117, in call_factory
return app_factory(script_info)
File "C:\Users\zkhp\Desktop\flask-bigger-master\backend\startup.py", line 41, in create_app
app.config['SECRET_KEY'] = config.get('secret', '!secret!')
AttributeError: 'ScriptInfo' object has no attribute 'get'

最后一句话在这里:

def create_app(config):
app = Flask(
__name__,
template_folder=template_folder,
static_folder=static_folder
)
app.config['SECRET_KEY'] = config.get('secret', '!secret!')

config 是一个字典,由以下方式给出:

def start_server(run_cfg=None, is_deploy=False):
config = {
'use_cdn': False,
'debug': run_cfg.get('debug', False),
'secret': md5('!secret!'),
'url_prefix': None,
'debugtoolbar': True
}
app = create_app(config)

我对字典 config 如何转换为 ScriptInfo 感到困惑?

我应该怎么做才能解决这个问题?

最佳答案

看到您已经解决了最初的查询,我想建议为您 future 的 Flask 应用程序编写一个更好的结构化配置,这也将使您在应用程序变得更大的情况下更容易添加更多配置变量。

考虑将配置放在自己的模块中,最好放在应用根文件夹中的文件夹名称 instance 中。这是一个示例。

"""
This module sets the configurations for the application
"""
import os


class Config(object):
"""Parent configuration class."""
DEBUG = False
CSRF_ENABLED = True
SECRET_KEY = os.getenv("SECRET_KEY")
DATABASE_URL = os.getenv("DATABASE_URL")
BUNDLE_ERRORS = True


class DevelopmentConfig(Config):
"""Development phase configurations"""
DEBUG = True


class TestingConfig(Config):
"""Testing Configurations."""
TESTING = True
DEBUG = True
DATABASE_URL = os.getenv("DATABASE_TEST_URL")


class ReleaseConfig(Config):
"""Release Configurations."""
DEBUG = False
TESTING = False


app_config = {
'development': DevelopmentConfig,
'testing': TestingConfig,
'release': ReleaseConfig,
}

关于python - 在 Flask shell 中运行 Flask 应用程序时出现 AttributeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58568920/

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