在NDB和GAE中评估put()之后的条件

Cho*_*eat 2 python google-app-engine

在使用NDB将我的实体放入数据存储区后,我需要执行一些代码.

让我说我有这样的事情.

ent=Entity()
ent.put()

def after_put():
    assert ...
Run Code Online (Sandbox Code Playgroud)

如何在不手动调用函数的情况下实现这一目标?我可以使用某种触发器或回调吗?

Pau*_*ood 5

是的,你可以使用"钩子".

NDB提供轻量级挂钩机制.通过定义一个钩子,应用程序可以在某种类型的操作之前或之后运行一些代码; 例如,Model可能会在每个get()之前运行一些函数.当使用适当方法的同步,异步和多版本时,将运行钩子函数.例如,"pre-get"挂钩将应用于get(),get_async()和get_multi()的所有内容.

https://developers.google.com/appengine/docs/python/ndb/entities#hooks