我有一个相当复杂的对象,它需要一些其他对象作为它的成员。像这样:
from engine import engine
Class Car(object):
def __init__(self,engine_type):
self.engine=engine(engine_type)
是否有一种轻松的方法可以将此类嵌套定义映射到数据库,例如使用 SQLAlchemy?
感谢您的帮助。我正在学习 SQLAlchemy 并使用 ORMS。
请您参考如下方法:
不太清楚您要完成什么。如果我理解,您正在尝试使用指向另一个引擎模型的引擎属性定义 Car 模型,并且通过使用 engine_type 创建 Car 对象,代码应该:
- 如果引擎类型不存在则创建引擎对象
- 如果存在引擎类型则加载引擎对象
然后将其分配给 Car 对象。
如果是这样,您应该执行以下操作。
class Engine(object):
def __init__(self, engine_type):
self.engine_type
@staticmethod
def load(engine_type):
return session.query(Engine)\
.filter(engine_type==engine_type).one()
class Car(object):
def __init__(self, engine_type):
try:
engine = Engine.load(engine_type)
except NoResultsFound:
engine = Engine(session_type)
session.add(engine)
self.engine=engine
您需要自己定义以在汽车映射器上创建“引擎”关系,并且您还需要调整代码以在需要时启用 session 对象的范围。
