Issue running Flask App: create_app app.config.from_object(app_config[config_name]) KeyError: None
Issue running Flask App: create_app app.config.from_object(app_config[config_name]) KeyError: None
我从 GitHub 下载了一个 Flask 项目。我正在尝试 运行 virtualenv 中的 Flask 项目,但是当我 运行 virtualenv 中的项目时,它抛出以下错误:
none
\app__init__.py", line 10, in create_app
app.config.from_object(app_config[config_name])
KeyError: None
__init__.py:
from flask import Flask
from config import app_config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
db = SQLAlchemy()
def create_app(config_name):
app = Flask(__name__, instance_relative_config=True)
app.config.from_object(app_config[config_name])
app.config.from_pyfile('config.py')
db.init_app(app)
migrate = Migrate(app, db)
from app import models
from app.home import home as home_blueprint
app.register_blueprint(home_blueprint)
return app
config.py:
class Config(object):
class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_ECHO = True
class ProductionConfig(Config):
DEBUG = False
app_config = {
'development': DevelopmentConfig,
'production': ProductionConfig
}
run.py:
import os
from app import create_app
config_name = os.getenv('FLASK_CONFIG')
app = create_app(config_name)
if __name__ == '__main__':
app.run()
我认为您在尝试 运行 Flask 应用程序之前忘记设置 FLASK_CONFIG
环境变量。这将 导致您的环境配置查找失败 即 app_config[config_name]
将是 None
因为 config_name
未实例化。您可以尝试在 运行ning 之前设置您的环境变量吗?例如,打开您的终端并将您的 FLASK_CONFIG
环境变量设置为 development 然后尝试重新 运行ning 您的应用程序, 类似于:
# Macintosh Users
export FLASK_CONFIG=development
export FLASK_APP=<start_file> # <start_file> is probably run.py for the template
flask run
# Window Users
set FLASK_CONFIG=development
set FLASK_APP=run.py
flask run
希望对您有所帮助,如果这不能解决您的问题,能否请您粘贴启动您的应用程序的文件?这个文件大概是run.py
我从 GitHub 下载了一个 Flask 项目。我正在尝试 运行 virtualenv 中的 Flask 项目,但是当我 运行 virtualenv 中的项目时,它抛出以下错误:
none \app__init__.py", line 10, in create_app app.config.from_object(app_config[config_name]) KeyError: None
__init__.py:
from flask import Flask
from config import app_config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
db = SQLAlchemy()
def create_app(config_name):
app = Flask(__name__, instance_relative_config=True)
app.config.from_object(app_config[config_name])
app.config.from_pyfile('config.py')
db.init_app(app)
migrate = Migrate(app, db)
from app import models
from app.home import home as home_blueprint
app.register_blueprint(home_blueprint)
return app
config.py:
class Config(object):
class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_ECHO = True
class ProductionConfig(Config):
DEBUG = False
app_config = {
'development': DevelopmentConfig,
'production': ProductionConfig
}
run.py:
import os
from app import create_app
config_name = os.getenv('FLASK_CONFIG')
app = create_app(config_name)
if __name__ == '__main__':
app.run()
我认为您在尝试 运行 Flask 应用程序之前忘记设置 FLASK_CONFIG
环境变量。这将 导致您的环境配置查找失败 即 app_config[config_name]
将是 None
因为 config_name
未实例化。您可以尝试在 运行ning 之前设置您的环境变量吗?例如,打开您的终端并将您的 FLASK_CONFIG
环境变量设置为 development 然后尝试重新 运行ning 您的应用程序, 类似于:
# Macintosh Users
export FLASK_CONFIG=development
export FLASK_APP=<start_file> # <start_file> is probably run.py for the template
flask run
# Window Users
set FLASK_CONFIG=development
set FLASK_APP=run.py
flask run
希望对您有所帮助,如果这不能解决您的问题,能否请您粘贴启动您的应用程序的文件?这个文件大概是run.py