python如何保存信息_如何更新数据存储中的信息?

在更新之前,我需要检查该项是否在数据存储中。在

我有两个列表:UNIQUES = ["B","K","V"]和COUNTS = [5, 10, 3]

这是模型:class Rep(db.Model):

mAUTHOR = db.UserProperty(auto_current_user=True)

mUNIQUE = db.TextProperty()

mCOUNT = db.IntegerProperty()

mDATE = db.DateTimeProperty(auto_now_add=True)

此函数用于更新数据库:

^{pr2}$

受此启发,我尝试:for i in range(len(UNIQUES)):

C_QUERY = Rep.all()

C_QUERY.filter("mAUTHOR =", user)

C_QUERY.filter("mUNIQUE =", UNIQUES[i])

C_RESULT = C_QUERY.fetch(1)

if C_RESULT:

C = C_RESULT.mCOUNT + COUNTS[i]

S = db.Text(UNIQUES[i])

write_to_db(S,C)

else:

C = COUNTS[i]

S = UNIQUES[i]

write_to_db(S, C)

但结果并不是我所期望的。C_RESULT始终为空;并且不更新,而是创建一个新记录。我做错什么了?谢谢!在

EDIT3:问题已解决

根据大卫·安德希尔的评论,我更新了代码,现在可以用了。在if C_RESULT:

rep=C_RESULT[0]

rep.mCOUNT+=COUNTS[i]

rep.put()

EDIT2:相关问题

如何更新此查询并使用更新的信息将其放回原处?在C_QUERY = Rep.all()

C_QUERY.filter("mAUTHOR =", user)

C_QUERY.filter("mUNIQUE =", UNIQUES[i])

C_RESULT = C_QUERY.fetch(1)

然后我想写数据存储。我该怎么做?这看起来和他们在this page中所做的完全一样,但我无法使其工作。谢谢你的帮助。在

编辑

我根据大卫·安德希尔的回答更新了密码。这解决了问题(但功能不正确。我不确定这是否应该是一个不同的问题)。在for i in range(len(UNIQUES)):

C_QUERY = Rep.all()

C_QUERY.filter("mAUTHOR =", user)

C_QUERY.filter("mUNIQUE =", UNIQUES[i])

C_RESULT = C_QUERY.fetch(1)

if C_RESULT:

C = C_RESULT[0].mCOUNT + COUNTS[i]

S = UNIQUES[i]

write_to_db(S, C)

else:

C = COUNTS[i]

S = UNIQUES[i]

write_to_db(S, C)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值