【问题标题】:SQLite Date type only accepts Python date objects as inputSQLite Date 类型只接受 Python 日期对象作为输入
【发布时间】:2017-06-17 17:07:55
【问题描述】:

我对 SQLAlchemy 有疑问

SQLite Date 类型只接受 Python 日期对象作为输入。[SQL: 'UPDATE records SET timestamp=?][parameters: [{'timestamp': (datetime.date(2017, 6, 15),)}]]

这是我的 Forms.py

class DataForm(FlaskForm):        
    timestamp = DateField("date", validators=[Required()])

class ModifyDataForm(FlaskForm):
    timestamp = DateField("date", validators=[Required()])

这是我的 Models.py

class Record(db.Model):
    timestamp = db.Column(db.Date, default=date.today, index=True)

Views.py

def create():
    form = DataForm()
    if form.validate_on_submit():
        record = Record(timestamp=form.timestamp.data,)

def modify(id):
    record = Record.query.get_or_404(id)
    form = ModifyDataForm(record)
    if form.validate_on_submit():
        record.timestamp = form.timestamp.data,
    form.timestamp.data = record.timestamp

模板我用的是bootstrap的wtf.html

当我创建数据时,输入“2017-06-18”,没关系。
但是当我更新数据时,sqlalchemy raise:
>>>SQLite Date 类型只接受 Python 日期对象作为输入.[SQL: 'UPDATE records SET timestamp=?][parameters: [{'timestamp': (datetime.date(2017, 6, 15),)}]]

我哪里错了? datetime.date 不是 Python 日期对象吗?为什么第一次工作?我该如何解决它。

我的英语很差,如果有什么困惑,再问我。

谢谢!

【问题讨论】:

    标签: python date datetime flask flask-sqlalchemy


    【解决方案1】:

    在我的views.py
    功能修改。
    我只是从 create 复制代码。然后,它有一个逗号结束行。当我删除这个逗号时,一切正常!
    所以,如果你有同样的问题,请检查你的代码!

    【讨论】:

      猜你喜欢
      • 2021-06-11
      • 2020-05-09
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      相关资源
      最近更新 更多