我在前夕有一个资源,例如 ABC,当我向 ABC 发布新项目时满足某些条件时,我想操纵另一个资源,例如 BCD,我知道我可以为 post/pre_POST_ABC 挂钩事件,但是否有“内部”方式在不通过 HTTP 的情况下在 BCD 上发布?
问问题
2159 次
1 回答
7
在您的回调函数中,您可以:
a) 使用数据驱动将数据直接存入数据库
像这样的东西:
def update_ABC(request, payload):
accounts = app.data.driver.db['abc_collection']
account = accounts.insert(docs)
app = Eve()
app.on_post_POST_ABC += update_ABC
app.run()
会做的伎俩。您将以这种方式绕过框架,直接存储在数据库中。
B)用于app.test_client.post()
直接通过应用程序发布。
app.test_client().post('/bcd', json.dumps({"field":"value"}, content_type='application_json'))
这可能是一个更好的选择,因为请求通过框架(像元字段一样data_created
为您处理。)
更新:使用 v0.5+,您现在可以使用post_internal
来实现相同的结果。其他 CRUD 方法也有等效的内部方法。
于 2014-03-05T18:25:37.087 回答