在SQLAlchemy中插入Datetime属性时出现操作错误

时间:2017-10-26 17:55:53

标签: python datetime flask-sqlalchemy

当我尝试使用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)]

感谢您抽出宝贵时间阅读我的代码,并让我知道我哪里出错了。

0 个答案:

没有答案
相关问题