我遇到了SQLAlchemy的问题
SQLite日期类型只接受Python日期对象作为输入。[SQL:'UPDATE记录SET时间戳=?] [参数:[{'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加注:
>>> SQLite日期类型只接受Python日期对象作为输入。[SQL:'UPDATE记录SET时间戳=?] [参数:[{'timestamp':( datetime.date(2017,6,15),)}]]
我哪里错了? datetime.date不是Python日期对象吗?为什么第一次有效?我该如何解决呢。
我的英语很差,如果有任何疑惑,请再次问我。
谢谢!
答案 0 :(得分:1)
我太蠢了。
在我的views.py中
功能修改。
我只是从create复制代码。然后,它有一个逗号结束行。当我删除这个逗号时,一切正常!
因此,如果您遇到同样的问题,请检查您的代码!