LINUX.ORG.RU

Модифицировать объект request во Flask

 , ,


0

1

Всем привет.

Подскажите. Вот хочется делать middleware's всякие, которые добавляют к объекту request произвольные данные.

Вопрос, как такое во Flask? Следующий подход «в лоб» не работает:

def some_func(f):
    @wraps(f)
    def decorated_function(*args, **kwargs):
        request['my_data'] = 'ololo'
        return f(*args, **kwargs)
    return decorated_function

Получаю ошибку от werkzeug:

self._get_current_object()[key] = value
TypeError: 'Request' object does not support item assignment

Или для реализации декораторов во flask, которые модифицируют объект запроса, приняты какие-то другие практики?



Последнее исправление: djnoob (всего исправлений: 3)

Ну там можно session модифицировать. А так: setattr(request, 'my_data', 'ololo')

tz4678 ★★
()

Ты уверен, что тебе это действительно нужно? Посмотри в сторону flask.g и flask.views.View, наверняка то, что ты хочешь сделать, можно зарешать с помощью этого.

WitcherGeralt ★★
()

которые добавляют к объекту request произвольные данные.

Этот объект содержит данные о теле запроса, урле, куках, адресе пользователя и прочем. Вы уверены что вам нужно туда влезть и это будет логически обосновано? Что именно за данные вы хотите добавить, как они будут использоваться?

Может вы хотите модифицировать куки, или тело запроса, или еще что-то? Или вам нужно внутри приклада что-то прицепить к запросу чтоб использовать это в дальнейшем? Короче, думаю вам помогут с правильным решением задачи только если вы расскажете какая цель всего этого.

micronekodesu ★★★
()
Ответ на: комментарий от WitcherGeralt

Спасибо. flask.g - то, что нужно.

djnoob
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.