расширить класс пользовательского агента werkzeug

Я хочу расширить класс werkzeug UserAgent еще одним браузером. Как я могу это сделать, не изменяя исходный код библиотеки werkzeug? Я новичок в python, поэтому имею небольшое представление о миксинах, наследовании, модулях и так далее. Я нашел в документах:

Хорошая идея — создать собственный подкласс BaseRequest и добавить недостающую функциональность либо с помощью примесей, либо путем прямой реализации. Вот пример для таких подклассов:

from werkzeug.wrappers import BaseRequest, ETagRequestMixin
class Request(BaseRequest, ETagRequestMixin):
    pass

В какую часть моего кода я должен поместить это и как расширить стандартный класс UserAgent? Также я использую werkzeug с Flask. Заранее спасибо.


person Sleepwalker    schedule 23.05.2013    source источник


Ответы (1)


Удивительно. Как только вы зададите вопрос, ответ придет сам собой :)

Flask.request_class — это ответ:

from werkzeug.wrappers import BaseRequest, ETagRequestMixin

class Request(BaseRequest, ETagRequestMixin): 
    pass

app = Flask(__name__)
app.request_class = Request
person Sleepwalker    schedule 23.05.2013