class customer_classes:
# create the base class
base = declarative_base(metadata=metadata)
def __init__(self, metadata, customer_id):
class analytics(self.base):
__tablename__ = 'analytics_{}'.format(customer_id)
__mapper_args__ = ...
class embeds(self.base):
__tablename__ = 'analytics_{}'.format(customer_id)
__mapper_args__ = ...
class downloads(self.base):
__tablename__ = 'analytics_{}'.format(customer_id)
__mapper_args__ = ...
# now lets assign all these classes to attributes
import inspect
defined_classes = [cls for cls in locals().values()
if inspect.isclass(cls) and issubclass(cls, base)]
self.__dict__.update({cls.__name__: cls for cls in defined_classes})
# now we can create a set of classes for customer 123
customer_model = customer_classes(123)
session.query(customer_model. analytics).all()
# you can just as easily work with another customer at the same time in the same session
another_model = customer_classes(456)
session.query(another_model.analytics).all()
一种方法是工厂化为客户所需的所有类。像下面这样的。。。(这只是个草图!)你知道吗
相关问题 更多 >
编程相关推荐