У меня возникла проблема с конфигурацией загрузки в колбе.Колба не загружает конфигурацию
from config import config, DevelopmentConfig, TestingConfig, ProductionConfig
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name]) # Doesnot load configuration
app.config.from_object(DevelopmentConfig) # Loads configuration succesfully.
Я проверил тип конфигурации [имя_конфигурации] и т. Д. Они просто прекрасны.
Конфигурационный файл приводится ниже. Нет проблем с импортом, типами объектов. Если прошло статически, все будет хорошо. 'host' = 'serverip' намеренно.
Кроме того, эта проблема не возникает, когда я пытаюсь подключиться к db с помощью SQLAlchemy, но в случае MongoDB он не обновляет MONGODB_SETTINGS в настройках приложения.
import os
basedir = os.path.abspath(os.path.dirname(__file__))
from helper.helper_functions import generate_secret_key
class Config:
SECRET_KEY = os.environ.get('SECRET_KEY') or generate_secret_key()
SSL_DISABLE = False
@staticmethod
def init_app(app):
pass
class DevelopmentConfig(Config):
DEBUG = True
MONGODB_SETTINGS = {
'DB': 'development_db',
'host': 'localhost',
'port': 27017
}
class TestingConfig(Config):
TESTING = True
WTF_CSRF_ENABLED = False
MONGODB_SETTINGS = {
'DB': 'testing_db',
'HOST': 'localhost',
'PORT': 27017
}
class ProductionConfig(Config):
MONGODB_SETTINGS = {
'DB': 'production_db',
'host': 'server_ip',
'port': 27017, # default =27017
# other settings...
}
@classmethod
def init_app(app):
Config.init_app(app)
config = {
'development': DevelopmentConfig,
'testing': TestingConfig,
'production': ProductionConfig,
'default': TestingConfig,
}
Интересно.
app.config.update(MONGODB_SETTINGS={'DB':'testing_db'}) # works
settings = dict([('db', 'testing_db')])
app.config.update(MONGODB_SETTINGS=settings) # Does not work
Кроме того, когда я пытаюсь загрузить конфигурацию из файла конфигурации, используя другой метод, предложенный Flask-Config.
conf_name = 'test-config.py'
app.config.pyfile(conf_name) # Doesnot load the configuration from the file.
app.config.pyfile(''+conf_name) # Doesnot load the configuration from the file.
app.config.pyfile('test-config.py') #successfully loads the configuration from file.
Можете ли вы поделиться исходным кодом для конфигурации? Нам нужно увидеть, как определяются DevelopmentConfig и другие. –
Как вы это называете? – jimjkelly
Использование диспетчера Flask-script, а также для запуска unittests. Я потратил довольно много времени на тестирование всего остального. Он работает нормально. Проблема именно в этом вопросе, о котором я упоминал в вопросе. – ebd