cherrypy, автоматически выполняя некоторые действия перед каждым запросом - PullRequest
2 голосов
/ 05 марта 2012

У меня есть несколько действий, которые я хотел бы выполнить и применить к каждому запросу, отправленному на мой сервер cherrypy. Наиболее распространенный пример - чтение файлов cookie пользователей, чтобы определить, есть ли у него файл cookie «Запомнить меня», и, если это так, автоматически войти в систему пользователя и загрузить некоторую информацию по умолчанию в сеанс.

Другая возможность может состоять в том, чтобы проверить, существует ли уже сеанс, а затем загрузить некоторую информацию о пользователе в контекст Jinja2 по умолчанию.

Я бы хотел, чтобы это делалось при каждом запросе, и в идеале не хотел бы вручную ставить декоратор перед каждой из моих функций.

Я новичок в инструментах cherrypy 3, и мне не совсем понятна документация относительно того, что я должен делать. Любые ссылки на примеры приветствуются.

Спасибо

1 Ответ

1 голос
/ 06 марта 2012

Вам не нужно использовать декоратор перед вашими функциями.Вместо этого объявите инструмент в конфигурации.См. http://docs.cherrypy.org/dev/concepts/tools.html#config-files, в котором показано несколько способов настройки и включения инструментов для URL-адреса (и всех его дочерних элементов) или для каждого класса (и всех его дочерних элементов).Например, вы можете включить инструмент для всех URL-адресов в вашем конфигурационном файле:

[/]
tools.sessions.on: True

То же самое касается пользовательских инструментов.

...