当我尝试使用datetime属性创建对象时,我收到以下错误:
datebase_setup文件:
from sqlalchemy import Column, ForeignKey, Integer, String, DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from sqlalchemy import create_engine
Base = declarative_base()
class User(Base):
__tablename__ = 'user'
id = Column(Integer, primary_key = True)
name = Column(String(200), nullable = False)
email = Column(String(200), nullable = False)
picture = Column(String(300))
class Category(Base):
__tablename__ = 'category'
id = Column(Integer, primary_key = True)
name = Column(String(200), nullable = False)
#user_id = Column(Integer, ForeignKey('user.id'))
#user = relationship(User)
class Item(Base):
__tablename__ = 'item'
id = Column(Integer, primary_key = True)
name = Column(String(100), nullable = False)
date = Column(DateTime, nullable = False)
description = Column(String(300))
price = Column(String(8))
item_id = Column(Integer, ForeignKey('category.id'))
user_id = Column(Integer, ForeignKey('user.id'))
category = relationship(Category)
user = relationship(User)
engine = create_engine('sqlite:///categoryitem.db')
Base.metadata.create_all(engine)
插入目标文件:
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
import datetime
from database_setup import *
engine = create_engine('sqlite:///categoryitem.db')
Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()
user1 = User(name = "a",
email = "abc@gmail.com",
picture = "someurl")
session.add(user1)
session.commit()
category1 = Category(name = "Books")
session.add(category1)
session.commit()
item1 = Item(name = "Da Vinci Code",
date = datetime.datetime.now(),
description = "2003 mystery-detective novel by Dan Brown.",
price = "10$",
category = category1,
user = user1)
session.add(item1)
session.commit()
执行插入文件时收到的错误是: sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)表项没有名为date的列[SQL:u' INSERT INTO项目(名称,日期,描述,价格,item_id,user_id)VALUES(?,?,?,? ,?,?)'] [参数:(' Da Vinci Code',' 2017-10-26 17:42:10.172287',' 2003之谜 - 丹·布朗的反思小说。',' 10 $',1,1)]
感谢您抽出宝贵时间阅读我的代码,并让我知道我哪里出错了。