Python Flask Flask.cli.NoAppException与应用程序工厂
我正试图将配置设置拆分为config.py文件中的不同类,如文档所示 我已将我的项目拆分为以下文件夹:Python Flask Flask.cli.NoAppException与应用程序工厂,python,flask,config,Python,Flask,Config,我正试图将配置设置拆分为config.py文件中的不同类,如文档所示 我已将我的项目拆分为以下文件夹: /bloggy autoapp.py config.py /app __init__.py models.py views.py /static /templates 我的config.py如下所示 import os basedir = os.path.abspath(os.path.d
/bloggy
autoapp.py
config.py
/app
__init__.py
models.py
views.py
/static
/templates
我的config.py
如下所示
import os
basedir = os.path.abspath(os.path.dirname(__file__))
class Config(object):
SECRET_KEY = os.environ.get('SECRET_KEY') or 'secret key'
SQLALCHEMY_TRACK_MODIFICATIONS = True
SQLALCHEMY_MIGRATE_REPO = os.path.join(basedir, 'db_repository')
class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'db.sqlite3')
class TestingConfig(Config):
TESTING = True
config = {
'development': DevelopmentConfig,
'testing': TestingConfig,
'default': DevelopmentConfig
}
我有一个应用程序工厂文件autoapp.py
,用于从所需的环境变量创建Flask应用程序
import os
from app import create_app
app = create_app(os.getenv('FLASK_CONFIG') or 'default')
我的app/\uuuu init\uuuu.py
如下所示:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from config import config
db = SQLAlchemy()
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
db.init_app(app)
return app
跑步后
$export FLASK\u APP=autoapp.py
及
$export FLASK\u DEBUG=1
并使用以下命令启动服务器:
$flask run
我得到以下错误:
Traceback (most recent call last):
File "/home/jwe/.local/lib/python3.5/site-packages/flask/cli.py", line 178, in __call__
self._flush_bg_loading_exception()
File "/home/jwe/.local/lib/python3.5/site-packages/flask/cli.py", line 166, in _flush_bg_loading_exception
reraise(*exc_info)
File "/home/jwe/.local/lib/python3.5/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/home/jwe/.local/lib/python3.5/site-packages/flask/cli.py", line 155, in _load_app
self._load_unlocked()
File "/home/jwe/.local/lib/python3.5/site-packages/flask/cli.py", line 170, in _load_unlocked
self._app = rv = self.loader()
File "/home/jwe/.local/lib/python3.5/site-packages/flask/cli.py", line 231, in load_app
rv = locate_app(self.app_import_path)
File "/home/jwe/.local/lib/python3.5/site-packages/flask/cli.py", line 95, in locate_app
'is .py' % module)
flask.cli.NoAppException: The file/path provided (autoapp) does not appear to exist. Please verify the path is correct. If app is not on PYTHONPATH, ensure the extension is .py
我是否可以让我的应用程序使用
config.py
中列出的设置,或者我应该采取不同的方法?添加flask应用程序的名称可能会有所帮助。例如:
app.config.from_object(bloggy.config[config_name])
请参阅flask doc中的。我遇到了相同的错误,但在根级别有一个不必要的
\uuuu init\uuuu.py
。确保你在/bloggy
中没有这个。当您运行flask时,您正处于/bloggy
?我放弃了,决定放弃应用程序工厂,而是将所有内容保留在init.py中。