【发布时间】: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