【发布时间】:2020-05-08 12:04:39
【问题描述】:
我不明白为什么会出现此错误。请解释错误。 我用的是官方文档。
我运行 Pipenv 虚拟环境:
python 3.8.2
sqlalchemy 1.3.16
您也可以尝试运行此代码。
import enum
from sqlalchemy import create_engine, Column, Integer, String, Enum
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
engine = create_engine('sqlite:///:memory:', echo=True)
Base = declarative_base()
Session = sessionmaker(bind=engine)
session = Session()
class Type(str, enum.Enum):
ONE = "one"
TWO = "two"
class Item(Base):
__tablename__ = 'items'
id = Column(Integer, primary_key=True, index=True)
name = Column(String, unique=True, index=True)
type = Column(Enum(Type), default=Type.ONE, nullable=False)
item = Item(name="item_name", type="one")
session.add(item)
print(Item.__table__)
session.commit()
for name in session.query(Item.name):
print(name)
【问题讨论】:
-
你执行
Base.metadata.create_all(bind=engine)创建表了吗? -
@snakecharmerb 现在我添加了它并且一切正常。为什么要添加这个?
-
它在数据库中创建表(有一些方法可以将 SQLAlchemy 与预先存在的表一起使用,因此需要明确的指令)。
标签: python python-3.x sqlalchemy