Отслеживание статуса входа в систему через webapp2
Я изучаю курс Udacity по разработке полного стека (Python2 и Google app engine) и на одном из уроков, чтобы отслеживать статус входа пользователя в систему, профессор использует следующую функцию:
def initialize(self, *a, **kw):
webapp2.RequestHandler.initialize(self, *a, **kw)
uid = self.read_secure_cookie('user_id')
self.user = uid and User.by_id(int(uid))
Цель этой функции - вернуть объект User, чтобы я мог использовать его свойства в разное время.
Он объясняет, что эта функция вызывается при каждом отдельном запросе. Похоже, что он запрашивает хранилище данных каждый раз. В реальной производственной среде это самый экономически эффективный способ сделать это?
1 ответ
При первой проверке функции, которой вы поделились, не похоже, что она вызывает DataStore, так как я предполагаю, что read_secure_cookie
пользовательская функция, которая выглядит примерно так:
def read_secure_cookie(self,name):
cookie = self.request.cookies.get(name)
return cookie
В случае, если это тип определения этой функции, он работает с файлами cookie веб-приложения 2, а не читает из хранилища данных.
В любом случае, как @Alex предложил в комментарии к вашему вопросу, в зависимости от вашего случая использования вы можете рассмотреть возможность использования Memcache, поскольку это рекомендуемый инструмент, когда во многих различных запросах используются одни и те же данные хранилища данных. Однако, если основной целью используемых файлов cookie является отслеживание статуса пользователя, это может быть параметр, связанный с каждым соединением, поэтому, возможно, использование cookie-файлов является лучшим решением.