【问题标题】:Call Python script from SQL trigger从 SQL 触发器调用 Python 脚本
【发布时间】:2019-04-29 19:57:20
【问题描述】:

我有以下场景:用户可以登录并更新某些表,并且每当更新该表时,我想调用一个 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报错:no such function: FUNC_EMS

【问题讨论】:

  • 认为 Django Signals 是一种更简单的方法......

标签: python sql django sqlite


【解决方案1】:

将信号用于某些通知并结合自定义管理命令和 crontab 作业用于其他通知(日期提醒),此任务要容易得多。 Django 太棒了!

【讨论】:

    猜你喜欢
    • 2015-01-25
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    相关资源
    最近更新 更多