我想要在django中的燒瓶中的模型(如rest-hooks)中插入,更新和刪除之後將數據發佈到目標URL。對燒瓶的SQLAlchemy的像下面現在我只找到信號事件:燒瓶:在數據庫中插入,刪除和更新後發佈數據
@event.listens_for(MyModel, 'after_insert')
def do_stuff(mapper, connection, target):
那麼如何像我們一樣用在Django休息鉤或燒瓶做到這一點是有,我可以使用任何其他庫。
在此先感謝。
我想要在django中的燒瓶中的模型(如rest-hooks)中插入,更新和刪除之後將數據發佈到目標URL。對燒瓶的SQLAlchemy的像下面現在我只找到信號事件:燒瓶:在數據庫中插入,刪除和更新後發佈數據
@event.listens_for(MyModel, 'after_insert')
def do_stuff(mapper, connection, target):
那麼如何像我們一樣用在Django休息鉤或燒瓶做到這一點是有,我可以使用任何其他庫。
在此先感謝。
我假設您想要POST的REST端點位於相同的瓶子應用程序中。分離REST端點中的業務邏輯並在整個應用程序中共享代碼是一種很好的做法。
在我的情況,我通常有創建單獨的PY文件(稱爲他們的服務)和移動業務邏輯:
# inventory_services.py
def delete_item(id, data):
pass
# ... business logic here
然後從您的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鍊金術鉤子方法相同的服務方法:
from inventory_services import delete_item
@event.listens_for(MyModel, 'after_insert')
def do_stuff(mapper, connection, target):
delete_item(id, data)
這裏的基本思想是將你的API方法中的代碼移動到其他普通函數中,以便它們可以在整個應用程序中訪問。
看來你已經想通了。你的'do_stuff'方法將在插入後觸發。你可以用''after_update''和''after_delete''做同樣的事情。或者你的問題是關於如何在python中發佈一個請求?爲此,您可以使用請求,例如(http://docs.python-requests.org/en/master/)。 – AArias
@AArias 是的,我已經想通了,但我也想知道,如果有一個像燒瓶的休息鉤也庫。 – Zeeshan