Как создать синглтон по запросу в пилонах? - PullRequest
0 голосов
/ 11 мая 2010

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

Как правильно это сделать? Должны ли мы просто создать объект в промежуточном программном обеспечении и сохранить его в request.environ? Есть ли более подходящий способ сделать это?

Ответы [ 2 ]

1 голос
/ 11 мая 2010

В Paste есть хорошая реализация локальных переменных запроса: paste.registry Pylons использует это для своих собственных глобальных переменных запроса.

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

0 голосов
/ 11 мая 2010

Может быть положиться на встроенную функциональность?

import logging
logging.getLogger(__name__)

Функциональность регистрации в Python довольно настраиваема.

...