flask:在数据库中插入,删除和更新后发布数据

时间:2016-11-24 06:50:31

标签: python django flask signals flask-sqlalchemy

我希望在django中rest-hooks之类的瓶子中的模型中插入,更新和删除后将数据发布到目标网址。现在我只发现了如下所示的flask-sqlalchemy的信号事件:

imageView

那么如何在我们在Django中使用rest-hooks在烧瓶中执行此操作,或者是否可以使用任何其他库。

提前致谢。

1 个答案:

答案 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方法中的代码移动到其他普通函数中,以便可以在整个应用程序中访问它们。