我用Python,Flask编写了一个小型博客系统并制作了一个小模板,我可以使用CKEdit编辑帖子。我有五个帖子:
A, B, C, D, E
如果我想更新帖子A,一旦我进行了编辑,我实际上得到了编辑+3个帖子,在这种情况下,发布了D.帖子D的所有原始内容都被A和原版的编辑内容覆盖A的内容未被触及。
除最后一个帖子外,所有帖子都会发生这种情况。如果我想编辑D,我会编辑B,但我编辑E,帖子已成功编辑。
我认为这是数据库指针的一些问题,但不知道如何处理它。
更新代码如下:
def set_post(title, text, timestamp, page):
if page != '': #Update
data = Post.query.get(page)
data.title = title
data.text = text
db.session.commit()
[..]
我已经检查过收到的“页面”变量是否正确(flash(页面)就在if句子之后)。
底层数据库引擎是SQLLite 3。
答案 0 :(得分:0)
page
值不是主键。主键.get()
方法查询。要按其他列进行查询,请使用filter_by()
。例如:
Post.query.filter_by(page=page).first()