Как избавиться от configparser.NoOptionError в django - PullRequest
0 голосов
/ 17 апреля 2020
DEBUG = eval(ctx.get(CONFIGSECTION, 'DEBUG'))

# MDM Revert before prod!
# DEBUG=True

TEMPLATE_DEBUG = DEBUG

REDIS_SERVER = ctx.get(CONFIGSECTION, 'REDIS_SERVER')
REDIS_DB = ctx.get(CONFIGSECTION, 'REDIS_DB')

Я получаю ошибку ниже

raise NoOptionError(option, section)
configparser.NoOptionError: No option 'debug' in section: 'DEFAULT'

1 Ответ

1 голос
/ 17 апреля 2020

Пожалуйста, выведите новый класс анализатора конфигурации из RawConfigParser, добавив только новое специальное поведение, например так: Пожалуйста, прочитайте этот документ: https://docs.python.org/3/library/configparser.html

from ConfigParser import RawConfigParser, NoOptionError
from StringIO import StringIO
from collections import defaultdict

class MyConfigParser(RawConfigParser):
    def get(self, section, option):
        try:
            return RawConfigParser.get(self, section, option)
        except NoOptionError:
            return None

settings=StringIO('''
[Set]
ip=192.0.2.76
verify=yes
[Set2]
ip=192.0.2.74
''')

cfg=MyConfigParser(allow_no_value=True)
cfg.readfp(settings)

assert cfg.get('Set', 'verify') ==  'yes'
assert cfg.get('Set2', 'verify') == None
...