从SQL触发器调用Python脚本

时间:2019-04-29 19:57:21

标签: python sql django sqlite

我有以下情况:用户可以登录并更新某些表,并且每当该表更新时,我都想调用一个Python脚本,该脚本将查询同一数据库以获取其他信息(加入),然后使用Django的电子邮件系统向该组中的所有用户(角色相同)发送该信息。

我当前的方法是在SQLite3中创建用户定义的函数,然后创建一个调用该函数的触发器(该触发器链接到Python文件)。 SQLite是否可能?

Django应用,SQLite和Python。

import sqlite3

def email_materials_submittal(project_id):
    print(project_id)


con = sqlite3.connect('../db.sqlite3')
con.create_function("FUNC_EMS", 1, email_materials_submittal)
con.commit()
cur = con.cursor()
cur.execute("CREATE TRIGGER TRIG_EMS AFTER INSERT ON core_level BEGIN SELECT FUNC_EMS(NEW.project_id); END;")
con.commit()
con.close()

每当将新行插入到特定表中时,我希望SQL调用外部Python脚本。尝试了上面的代码,但是SQLite抛出错误:没有这样的函数:FUNC_EMS

1 个答案:

答案 0 :(得分:0)

使用信号通知某些通知,并结合使用自定义管理命令和crontab作业(另一些通知)来简化此任务。 Django很棒!