python - 如何摆脱 django 中的 configparser.NoOptionError
问题描述
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'
解决方案
请从 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
推荐阅读
- python - 从购物车中删除按钮未出现 - django 模板语言
- python - 识别由非结构化点集包围的正确点
- python - “变量”未访问
- c# - 为什么我不断收到错误消息,即我的模型不包含另一个模型的定义,但它确实包含
- javascript - 从窗口对象提示添加
- git - 更改 VS Code 中不同 Git 提交之间差异更改的设置
- ios - 我们如何在 SwiftUI 上实现类似视图的 Material Showcase?
- machine-learning - 在单程中将两个图像作为输入和两个图像作为输出?
- merge - 是否有用于比较多个文件并根据前两列打印输出的命令或脚本
- networking - 使虚拟机 IP(私有 IP)地址公开/可供外部访问