Для тестов добавим в код файла
vi myapp/controllers/main.pyновый метод, count, который будет считать число открытий страницы для данного юзера:
def count(self):
if session.has_key('users_count'):
session['users_count'] = session['users_count'] + 1
else:
session['users_count'] = 0
session.save()
return "Users count: ", session['users_count']
Тут все довольно тривиально, за исключением строки "session.save()", в Pylons необходимо явно указывать, что изменения в сессии требуется сохранить, для этого и вызывается метод save().
Ну и еще - краткое описание внутренностей работы сессий. В cookie пользователю помещается переменная с именем веб-приложения (myapp) со значением "e18f7176b0832b030a5df1041b6ffb877d5377e11e93e0e7e783584523192c65e946fafd", что представляет собой хеш код, по которому производится идентификация владельца сессии. Время жизни сессии - до закрытия браузера.
Ну вот и все, теперь при каждом обновлении страницы http://127.0.0.1/main/count число будет увеличиваться.
Очень нужна помощь, по устранию бага с сессиями в проекте на Pylons+ Posrgesql + Baker. Бывает, что в сессию не заносятся данные... Залогиненный "оператор" стоя на странице клиента и оформляя ему заказ в момент "сохранения заказа"мгновенно оказывается на странице другого клиента с которым не работал вообще, но чаще с которым работал накануне. Работу (можно фриланс) по устранения бага хорошо оплатим!
ReplyDeleteЯ не настолько спец по Pylons, к сожалению, чтобы такой баг помочь пофиксить. Как вариант, апгрейд до новых версий в надежде, что его уже нашли. Ну и баг-трекеры проектов почитать.
ReplyDelete