为 Datastore Plus (NDB) 中的事务提供参数
我在使用 Datastore Plus 时无法弄清楚如何将参数传递到事务中。
有人可以重写这个常规数据存储示例代码吗?
from google.appengine.ext import db
class Accumulator(db.Model):
counter = db.IntegerProperty()
def increment_counter(key, amount):
obj = db.get(key)
obj.counter += amount
obj.put()
q = db.GqlQuery("SELECT * FROM Accumulator")
acc = q.get()
db.run_in_transaction(increment_counter, acc.key(), 5)
我对数据存储区以及最后一行的等效内容特别感兴趣。
数据存储区和文档 的示例代码根本不处理参数(在事务内硬编码)。
I'm having trouble working out how to pass in arguments into transactions when using Datastore Plus.
Could someone please rewrite this regular-datastore example code?
from google.appengine.ext import db
class Accumulator(db.Model):
counter = db.IntegerProperty()
def increment_counter(key, amount):
obj = db.get(key)
obj.counter += amount
obj.put()
q = db.GqlQuery("SELECT * FROM Accumulator")
acc = q.get()
db.run_in_transaction(increment_counter, acc.key(), 5)
I'm particularly interested in the datastore plus equivalent of that last line.
The datastore plus documentation's example code doesn't deal with arguments at all (hardcoded inside the transaction).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设您可以遵循文档中的示例,答案是使用 lambda(或命名辅助函数)。例如
Assuming you can follow the example from the docs, the answer is to use a lambda (or a named helper function). E.g.