Cherrypy передать локальную переменную между функциями под Root () - PullRequest
0 голосов
/ 15 ноября 2011

Пожалуйста, посмотрите на код:

class Root:
    def __init__(self):
        self._Name = None

    def index(self):
        self._Name = getNameFromUser() 
        return mytemplate.render()
    index.exposed = True

    def foo(self):
        myName = self._Name
        //dosomething
        return mytemplate.render( showmyName( myName) )
    foo.exposed = True

if __name__ == '__main__':
    cherrypy.quickstart(Root())

Вот проблема: пользователь 1, пользователь 2 и пользователь 3 входят, затем, когда сайт хочет показать имя с помощью foo (), он возвращает самого последнего пользователя, который пришел на сайт Я хочу, чтобы каждый пользователь видел свое имя.

In Fact I want to have local variable per user HOW to do that ?

1 Ответ

1 голос
/ 15 ноября 2011

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

...