【发布时间】:2017-04-03 15:11:16
【问题描述】:
我在通过 SQLAlchemy 创建和访问的数据库中有一个表:
我使用 Flask-SQLAlchemy 向其中添加一条记录,如下所示:
...
content = request.form['content']
date = datetime.today()
post = Post(date, content)
db.session.add(post)
db.session.commit()
...
这条记录被添加到表中。执行该代码后,我立即查询另一个表:
userID = session['userID']
posts = db.session.query(Post).filter_by(userID=userID).count()
但是我在查询过程中收到错误:
OperationalError:(由于查询调用自动刷新而引发; 如果发生此刷新,请考虑使用 session.no_autoflush 块 过早地)(_mysql_exceptions.OperationalError)(1292,“不正确 日期值:第 1 行的“日期”列的“11/20”)[SQL:u'UPDATE 帖子设置日期=%s WHERE posts.id = %s'] [参数:(('11/20', 1L))]
为什么我在将记录添加到表格时已经指定了帖子的日期,但它正在更新?另外这个错误的原因是什么?谢谢。
编辑:
这就是表格模型的样子:
class Post(db.Model):
__tablename__ = 'posts'
id = db.Column(db.Integer, primary_key=True)
content = db.Column(db.String(500))
date = db.Column(db.Date, nullable=False)
def __init__(self, id, content, date):
self.id = id
self.content = content
self.date = date
【问题讨论】:
-
Pav 我删除了我的答案,你说得对,这无关紧要。问题是我们必须遗漏一些细节(可能还有更多代码?)才能深入了解。如果我想出任何其他想法,我会发布一个新的答案。
-
@PavSidhu 你纠正了mysql异常,好像和第一个代码块有关
-
如果你放弃
filter_by会发生什么?
标签: python mysql sql sqlalchemy flask-sqlalchemy