【问题标题】:SQLite DateTime type only accepts Python datetimeSQLite DateTime 类型只接受 Python 日期时间
【发布时间】:2018-11-06 07:14:36
【问题描述】:

我尝试从字典中填充 SQLAlchemy 模型。代码部分是这样的。

data = dict(request.form)
c=customer(**data)
db.session.add(c)
db.session.commit() 

当表单没有日期字段时,一切都很好。但是,当向表单添加日期时间字段时,无法填充模型。我收到此错误消息。

SQLite DateTime 类型只接受 Python 日期时间和日期对象作为输入。 [SQL: 'INSERT INTO customer (first_name, last_name, register_date) VALUES (?, ?, ?)'] [参数: [{'first_name': ['jhon'], 'register_date': ['2010-01-01 '], 'last_name': ['snow']}]]

class customer(db.Model):
first_name = db.Column(db.String(200))
last_name= db.Column(db.String(200))
register_date=db.Column(db.DateTime)

我该如何解决?

【问题讨论】:

标签: python sqlite sqlalchemy


【解决方案1】:

看起来register_date 是您代码中的一个字符串。在调用c=customer(**data) 之前,您需要将字符串转换为datetimedate 对象。

【讨论】:

  • register_date 是表单字段,它是其他字段的输入。设置 register_date 为 c.register_date=form.register_date.data 没有问题。
  • 你原帖中data['register_date']的类型是什么,form.register_date.data的类型是什么?
猜你喜欢
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 2021-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-22
相关资源
最近更新 更多