Есть ли какие-либо проблемы с использованием сессии Django для хранения информации? - PullRequest
0 голосов
/ 16 апреля 2011

Являются ли они подводными камнями для использования сессии django для хранения информации о пользователях?в каких ситуациях мне следует избегать использования этого механизма?

Ответы [ 2 ]

3 голосов
/ 16 апреля 2011

«Инфраструктура сеанса позволяет вам хранить и извлекать произвольные данные для каждого посетителя сайта», поэтому, если вы согласны (сохраненная информация на основе словаря доступна только для конкретного пользователя этого сеанса, так как до тех пор, пока вы не получите доступ к выбранному бэкэнду сеанса) это нормально.

Единственные подводные камни, которые я вижу, могут быть введены при использовании бэкэнда сеанса на основе кэша (аннулирование кэша, сохранение данных, распределение данных, подлежащих кэшированию, на несколько серверов и тому подобное), особенно при хранении данные отличаются от вашего основного хранилища (базы данных) - скажем, с использованием кэша memcached или файла.

2 голосов
/ 17 апреля 2011

Одна вещь, которая удивила меня хранением данных в сеансах, это то, что происходит (или не происходит), когда пользователь открывает сайт в двух браузерах (скажем, один раз на своем мобильном телефоне, один раз на своем рабочем столе).

Например, у меня была проблема с производительностью, и я решил ее исправить, сделав меньше обращений к базе данных.Предпосылка сайта заключалась в том, что мобильное приложение предназначено для просмотра данных, но вы вносите изменения через сайт рабочего стола.

Существовала некоторая логика, подобная этой:

if not session_data then:
    fetch_data_and_put_in_session
else:
    get_session_data_ftw()

Если пользователь вошел в систему на своеммобильные данные сеанса были созданы из базы данных.Если они затем использовали свой браузер для внесения изменений в данные, они не могли просматривать их на своем мобильном телефоне, пока их сеанс не истек.

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