Отслеживание статуса входа в систему через 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-файлов является лучшим решением.

Другие вопросы по тегам