我希望在django中rest-hooks之类的瓶子中的模型中插入,更新和删除后将数据发布到目标网址。现在我只发现了如下所示的flask-sqlalchemy的信号事件:
imageView
那么如何在我们在Django中使用rest-hooks在烧瓶中执行此操作,或者是否可以使用任何其他库。
提前致谢。
答案 0 :(得分:1)
我假设您想要POST到的REST终点位于同一个烧瓶应用程序中。最好将REST端点中的业务逻辑分开,并在整个应用程序中共享代码。
就我而言,我通常会创建单独的py文件(称为服务)并在那里移动业务逻辑:
# inventory_services.py
def delete_item(id, data):
pass
# ... business logic here
然后从您将数据POST到的REST端点调用此方法:
from inventory_services import delete_item
@api.route('/inventory/delete-item', methods=['POST'])
def delete_item_api():
posted_data = request.get_json()
delete_item(posted_data.id, posted_data.data)
在SQL Alchemy钩子方法中使用相同的服务方法:
from inventory_services import delete_item
@event.listens_for(MyModel, 'after_insert')
def do_stuff(mapper, connection, target):
delete_item(id, data)
这里的基本思想是将api方法中的代码移动到其他普通函数中,以便可以在整个应用程序中访问它们。