2013-05-23 3 views
1

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

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

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

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

ответ

3

Amazing. После того, как вы задаете вопрос ответ приходит сам по себе :)

Flask.request_class ответ:

from werkzeug.wrappers import BaseRequest, ETagRequestMixin 

class Request(BaseRequest, ETagRequestMixin): 
    pass 

app = Flask(__name__) 
app.request_class = Request