Вызов скрипта Python из триггера SQL

У меня есть следующий сценарий: пользователи могут входить в систему и обновлять определенные таблицы, и всякий раз, когда эта таблица обновляется, я хотел бы вызвать скрипт 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

Думая, что Django Signals - это более простой способ...

user1314147 29.04.2019 22:00
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
1 204
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Эта задача намного упрощается с помощью сигналов для некоторых уведомлений и комбинации пользовательских команд управления и заданий crontab для других (напоминания о дате). Джанго классный!

Другие вопросы по теме