python-3.x - SQlAlchemy __tablename__ NameError

标签 python-3.x sqlalchemy

我对 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()

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

NameError: name 'tablename' is not defined



我究竟做错了什么?

最佳答案

您有一个比较运算符 ==而不是赋值运算符 =在您对 Collection 的定义中:

__tablename__ == 'Collection'

关于python-3.x - SQlAlchemy __tablename__ NameError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35998854/

相关文章:

python - 如何连接 2 个表并获得对象上的结果

csv - 使用 SQLalchemy 读取大文件

python - 调用函数时更改 Python 3 sys.argv

python - argparse 参数依赖

python-3.x - 如何在不使用 @hydra.main() 的情况下获取 Hydra 配置

python - 如何在 aiomysql 中使用连接池

python - ORA-03135 连接在尝试使用 python 和 cx_Oracle 模块连接到数据库时失去联系

python - 可以将 SQLAlchemy 配置为非阻塞吗?

python - SQLALCHEMY:如何在flask_sqlalchemy-SQLalchemy 中使用@events.listens_for

python - SQLAlchemy,急切加载 postgresql INET/CIDR 关系