2017-01-08 7 views
0

Я начал использовать CherryPy в проекте. Мне это нравится, потому что это простота, но кривая обучения была крутой из-за отсутствия документации.Передача переменной на сеанс с использованием CherryPy

Во-первых, я бы хотел, чтобы «установить» переменную на сеанс пользователя.

@cherrypy.expose 
def setter(self): 
    email = "[email protected]" 
    cherrypy.session["email"] = email 
    return "Variable passed to session"   

Во-вторых, я хотел бы назвать эту переменную из сеанса другой функцией.

@cherrypy.expose 
def getter(self): 
    return cherrypy.session.get("email")   

ответ

0

Ваш пример "set" правильный.

cherrypy.session["email"] = email 

Но ваш "получить" пример должен быть просто:

return cherrypy.session["email"] 
+0

Это работает! Но знаете ли вы, почему я не могу сохранить charrypy.session ["email"] в переменной, а затем вернуть переменную? (Я получаю 500 Intenal Error: KeyError: 'variable_name') – Rimo

+0

Где вы объявляете переменную? Если вы пытаетесь вернуть его из другой функции, чем было объявлено/назначено, оно не будет доступно. Вам также необходимо рассмотреть последовательность, если вы попытаетесь прочитать ключ «электронная почта» из сеанса до того, как вы его назначили, тогда вы получите ключевую ошибку. –

1

Вы позволяя сессии?

Если вы используете конфигурационный файл затем добавить:

[/] 
tools.sessions.on = True 

Или, если вы передаете словарь конфигурации для QuickStart или что-то подобное:

{'/': {'tools.session.on': True}} 

посмотрите в строку документации из модуль сессий в https://github.com/cherrypy/cherrypy/blob/master/cherrypy/lib/sessions.py

+0

Да, 100% уверен. – Rimo

 Смежные вопросы

  • Нет связанных вопросов^_^