Как создать новую сессию в Django?

#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»). Это будет означать, что каждый из ваших двух экземпляров знает, какому идентификатору сеанса они соответствуют.