Форум сайта python.su
Как реализовать сессии на питон, используя wsgi без фреймворков.
Хотелось бы понять сам механизм.
Поделитесь примером.
Офлайн
проще всего посмотреть как это сделано в нормальном WSGI фреймворке или WSGI библиотеке, например werkzeug, paste, beaker, wsgistate и т.д.
Я в своё время тоже писал нечто подобное (на основе webob) - приведу кусок кода показывающий основной принцип.
class SessionMiddleware(object):
def __init__(self, app, store, initializer=None, config=session_parameters):
self.app = app
self.store = store
self.session = utils.ThreadedDict()
self._initializer = initializer
self._last_cleanup_time = 0
self._config = config
@controller
def __call__(self, req):
self._cleanup() # чистим старые сессии
self._load(req) # загружаем сессию из куки
req.session = self.session
res = req.get_response(self.app) # выполняем обертываемое приложение
self._save(res) # сохраняем сессию в хранилище
return res # возвращаем результат
Офлайн
aleshgoОтправляете клиенту куку, а при получении куки от клиента создать/загрузить словарь с переменными (сессия).
Как реализовать сессии на питон, используя wsgi без фреймворков.
Хотелось бы понять сам механизм.
Поделитесь примером.
Офлайн
под “чистым” wsgi писать не очень то приятное занятие. При использовании фреймворка скорость разработки увеличивается на порядок, даже только из за того что не нужно изобретать велосипедов. Возьмите для начала простенький, то что озвучили выше (лично я юзаю web.py)
Офлайн
aleshgoВ общем случае - нужно:
Как реализовать сессии на питон, используя wsgi без фреймворков.
Хотелось бы понять сам механизм.
Поделитесь примером.
Офлайн