как исправить AttributeError: тип объекта «Обертка» не имеет атрибута «as_view» при использовании Decorator во Flask - PullRequest
0 голосов
/ 24 сентября 2019

Я написал код фляги о сайте.это может работать нормально.Я хочу знать статистику доступа пользователей.поэтому я написал код декоратора в Python.пока я использую декоратор в моем коде колбы.он показывает мне ошибку: AttributeError: тип объекта «Обертка» не имеет атрибута «as_view»

как исправить ошибку «as_view» при использовании кода декоратора для фляги?

код декоратора

def Trace(cls):
    class Wrapper:
        def __init__(self, *args, **kwargs):
            print("log something")
            self.wrapped = cls(*args, **kwargs)
        def __getattr__(self, attrname):
            return getattr(self.wrapped, attrname)
    return Wrapper

код колбы

@Trace
class UserInfo(Resource):
    def post(self):
        parser.add_argument('query_type', type=str, help='query_type should not empty')
        parser.add_argument('query_value', type=str, help='query_type should not empty')
        args = parser.parse_args()
        query_type = args['query_type']
        query_value = args['query_value']
        return get_user_info(query_type, query_value)

Traceback (most recent call last):
  File "/Users/leo/Documents/code/python-code/flask-newbrand-platform-tool/flask-newbrand-platform-tool.py", line 17, in <module>
    api.add_resource(UserInfo, '/user_info')
  File "/Users/leo/anaconda3/envs/py3.6/lib/python3.6/site-packages/flask_restful/__init__.py", line 404, in add_resource
    self._register_view(self.app, resource, *urls, **kwargs)
  File "/Users/leo/anaconda3/envs/py3.6/lib/python3.6/site-packages/flask_restful/__init__.py", line 444, in _register_view
    resource_func = self.output(resource.as_view(endpoint, *resource_class_args,
AttributeError: type object 'Wrapper' has no attribute 'as_view'

...