Как отслеживать время пользователя с момента его/ее входа и выхода из системы с помощью промежуточного ПО django
Я работаю над задачей. Построить промежуточное программное обеспечение, используя Django rest framework, которое может отслеживать время пользователя с момента его/ее входа в систему до выхода из нее, то есть сколько времени он/она потратил/а во время входа и выхода. Также подсчитывать определенный хит API.
Я бы сказал установить переменную в time.time()
, когда они входят в систему, и установить другую переменную в time.time()
, когда они выходят. Затем вычесть эти значения, чтобы получить количество секунд.
def login ():
login_time = time.time()
def logout ():
logout_time = time.time()
#To get the number of seconds the user spent on the platform,
#subtract login_time from logout_time
Предполагая, что никакая база данных не участвует в сохранении значения времени входа, вам понадобится утилита кэширования для хранения информации об имени пользователя -> времени входа, чтобы иметь возможность правильно рассчитать время, проведенное в сессии. Чтобы решить эту задачу с помощью Django Middleware, вы можете положиться на метод process_view. Если представление является представлением входа в систему, войдите в систему пользователя и создайте запись в кэше времени входа в систему по имени пользователя/электронной почте. Аналогично, когда пользователь выходит из системы, найдите запись в кэше для этого пользователя, рассчитайте активное время и удалите запись из кэша. Вы также можете использовать некоторые глобальные дикты/переменные для хранения значений времени, но это не является жизнеспособным решением в долгосрочной перспективе.