SQlAlchemy __tablename__ 名称错误

Gri*_*Mel 4 sqlalchemy python-3.x

我对 SQlAlchemy 完全陌生,为了得到它,我编写了以下代码:

from sqlalchemy import Column, String, Integer, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

class Collection(Base):
    __tablename__ == 'Collection'
    id = Column(Integer, primary_key=True)
    name = Column(String)


class Sheet(Base):
    __tablename__ = 'sheet'
    id = Column(Integer, primary_key=True)
    name = Column(String(200), nullable=False)
    collection_id = Column(Integer, ForeignKey('collection.id'))

def main():
    base_name = 'test.db'
    engine = create_engine('sqlite:///{}'.format(base_name))
    session = sessionmaker()
    session.configure(bind=engine)
    Base.metadata.create_all(engine)

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

当我运行这个脚本时,我得到:

NameError: name ' tablename ' 未定义

我究竟做错了什么?

uni*_*rio 5

你有一个比较运营商==,而不是一个赋值运算符=在你的定义Collection

__tablename__ == 'Collection'
Run Code Online (Sandbox Code Playgroud)