数据库中有张表parameters_table,里面记录的是产品的一些配置及可能动态变化的信息,实现索引器当然是操作此类表的最好方法
class ParameterTables(Base):
__tablename__ = 'parameters_table'
id = Column(Integer, primary_key=True, autoincrement=True)
para_name = Column(String(64), primary_key=True)
para_value = Column(String(512), nullable=False)
class ParametersManager(object):
def __init__(self, session):
self.db = session
self.paras = self.db.query(ParameterTables).all()
self.dic = {}
if self.paras is not None:
for para in self.paras:
self.dic[para.para_name] = para.para_value
def __getitem__(self, key):
if key in self.dic:
return self.dic[key]
if __name__ == "__main__":
pm = ParametersManager()
print pm["xyz"]
既然有get,就相应的有set了,只要实现函数,就可以有set的索引器可用:)
def __setitem__(self, key, value):
self.dic[key] = value
pm["xyz"] = "XYZ"