对于SQLAlchemy中的两个模块的使用,我有些困惑。这是我的代码:
Base = declarative_base()
class Restaurant(Base):
__tablename__ = 'restaurant'
id = Column(Integer, primary_key=True)
name = Column(String(250), nullable=False)
class MenuItem(Base):
__tablename__ = 'menu_item'
name =Column(String(80), nullable = False)
id = Column(Integer, primary_key = True)
description = Column(String(250))
price = Column(String(8))
course = Column(String(250))
restaurant_id = Column(Integer,ForeignKey('restaurant.id'))
restaurant = relationship(Restaurant)
Run Code Online (Sandbox Code Playgroud)
我知道ForeignKey用于定义menu_item表的restaurant_id列与restaurant表的id列之间的外键关系。但是为什么要使用restaurant = Relationship(Restaurant)?
restaurant_id将引用一个ID(列值)。restaurant将引用一个Restaurant实例,该实例将在访问时从db延迟加载(或者如果您之前设置正确的内容,则急于加载)。如果在上进行设置backref,则relationship还可以从中访问MenuItem对象列表Restaurant。