#python #django
#python #django
Вопрос:
Возможно ли создать новую сессию в Django? Например, у меня есть URL-адрес, который всегда будет открываться на новой вкладке, и я хотел бы, чтобы новый сеанс создавался всякий раз, когда кто-то посещает этот URL?
Ответ №1:
Я предполагаю, что вы хотели бы удалить файл cookie предыдущего сеанса? В каком случае:
Чтобы очистить данные сеанса, а также файл cookie:
request.session.flush()
Чтобы очистить данные сеанса, но сохранить тот же файл cookie, просто используйте dict.clear():
request.session.clear()
Подробнее: https://docs.djangoproject.com/en/dev/topics/http/sessions /
Комментарии:
1. Нет, я хотел бы создать новый файл cookie сеанса, чтобы он выглядел так, как будто 2 разных сеанса просматривали мой сайт.
2. Есть ли причина, по которой вам конкретно нужны 2 файла cookie? Вы можете закодировать в некоторой логике и смоделировать 2 сеанса с 1 сеансом.
3. Написание кода для имитации 2 сеансов означает, что могут быть сценарии, в которых иллюзия терпит неудачу. Гораздо лучше иметь 2 отдельных сеанса, чтобы иллюзия никогда не нарушалась.
4. Итак, как вы, наверное, знаете, django по умолчанию хранит сеансы с файлом cookie «sessionid». Если вы хотите иметь 2 сеанса, вы сталкиваетесь с проблемой сохранения второго файла cookie «sessionid». Лучший способ, который я могу придумать, — это создать, возможно, файл cookie «sessionid_2», временно удалите файл cookie «sessionid», чтобы заставить django создать для вас новый сеанс. А затем редактируйте файл cookie «sessionid» каждый раз, прежде чем отправлять запрос с каждого соответствующего URL (сохраняя другой сеанс в «sessionid_2»). Это будет означать, что каждый из ваших двух экземпляров знает, какому идентификатору сеанса они соответствуют.