在Sqlalchemy中,使用Base和Table定义表有何不同

Cod*_*Boy 7 sqlalchemy

我知道我可以使用Table定义表:

user = Table('user', metadata,
    Column('user_id', Integer, primary_key = True),
)
Run Code Online (Sandbox Code Playgroud)

并使用Base:

Base = declarative_base()    
class User(Base):
        __tablename__ = 'user'
        user_id= Column(Integer, primary_key = True)
Run Code Online (Sandbox Code Playgroud)

但是有什么不同???

pi.*_*pi. 11

Base = declarative_base()

class User(Base):
    __tablename__ = 'user'

    id = Column('id', Integer, primary_key=True)
    name = Column('name', Unicode(64))
Run Code Online (Sandbox Code Playgroud)

只是语法糖

metadata = MetaData()

user = Table('user', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', Unicode(64)),
)

class User(object):
    pass

mapper(User, user)  # this will modify the User class!
Run Code Online (Sandbox Code Playgroud)