我正在使用django-rest-framework作为后端,并使用postgresql作为数据库。可能已通过原始SQL脚本更改了数据库,并且希望在发生这些更改时在后端通知我,以便可以将更改通知给其他用户。
我已经检查过诸如https://gist.github.com/pkese/2790749之类的帖子,以便通过python接收通知以及一些针对
的SQL脚本。CREATE TRIGGER rec_notify_trig AFTER INSERT OR UPDATE OR DELETE ON rec
FOR EACH ROW EXECUTE PROCEDURE rec_notify_func()
我的问题是,我不知道如何在django-rest-frame中将它们连接在一起,例如我应该在哪里放置SQL脚本,在哪里放置python设置以便可以将它们连接在一起。任何建议将不胜感激。
答案 0 :(得分:2)
我会在djangorestframework端创建一个端点来接受通知。
然后,在您的rec_notify_func()
中,您可以呼出并击中终结点,在终结点上可以执行任何最终用户通知。
CREATE EXTENSION plpython3u;
CREATE FUNCTION rec_notify_func(notification_endpoint_uri text) RETURNS text AS $$
from urllib.request import urlopen
data = urlopen(notification_endpoint_uri)
return data.read()
$$ LANGUAGE plpython3u;
注意: 您需要在系统上安装plpython才能启用扩展。
在ubuntu上是这样的:
sudo apt-get install postgresql-plpython3-9.6