在SQLAlchemy ORM 教程中,以下代码作为将映射到表的类的示例给出:
>>> from sqlalchemy import Column, Integer, String
>>> class User(Base):
... __tablename__ = 'users'
...
... id = Column(Integer, primary_key=True)
... name = Column(String)
... fullname = Column(String)
... password = Column(String)
...
... def __init__(self, name, fullname, password):
... self.name = name
... self.fullname = fullname
... self.password = password
...
... def __repr__(self):
... return "<User('%s','%s', '%s')>" % (self.name, self.fullname, self.password)
如果name
,fullname
和password
由用户在__init__
实例化类时在方法中设置,那么将它们声明为Column
对象(即作为类变量)有什么意义?我不明白 SQLAlchemy 如何以及何时能够使用这些信息 - 它是否通过User
继承自的“Base”类以某种方式传递给 SQLAlchemy 模块?(我认为不可能以这种方式将信息传递给一个单元——通过声明一个从另一个类继承的类)。