Как я могу выполнить функцию, когда приложение Flask заканчивается? - PullRequest
0 голосов
/ 16 февраля 2020

Я создаю приложение Flask и мне было интересно, как я могу сказать ему, чтобы он выполнял функцию, когда пользователь нажимает "Ctrl + C или X" в основном, когда он завершает приложение. Для этого примера, скажем, я просто хочу, чтобы он открыл файл и записал в него «сделано». Это возможно?

1 Ответ

0 голосов
/ 16 февраля 2020

Способ завершения программы - через сигналы, посылаемые вашей системой. Два примера сигналов: SIGKILL, что соответствует kill -9 и SIGINT, что соответствует нажатию ctrl + c.

У вас есть встроенная библиотека в Python, которая называется signals , хотя вы можете поиграть с сигналами в Unix / Linux.

Просто импортируйте библиотеку, используя import signals, а затем напишите простую функцию обратного вызова, которая запускается при получении зарегистрированного сигнала.

Пример функции обработчика сигналов:

def receiveSignal(signalNumber, frame):
print('Received:', signalNumber)
return

Пример регистрации сигналов

signal.signal(signal. SIGKILL, receiveSignal)
signal.signal(signal.SIGINT, receiveSignal)

Теперь, когда ваша программа получает зарегистрированные сигналы, вызывается функция receiveSignal и Вы можете выполнить задачу записи в файл и затем выйти из нее.

Приведенный выше пример взят из StackAbuse, и вы можете найти полный пример здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...