【发布时间】:2022-01-03 16:10:39
【问题描述】:
我正在使用 Flask 在 Python 中编写应用程序,现在在为端点创建资源类期间,我收到 Pylint 'too-many-instance-attributes' 警告。现在我不知道我正在做的是否是一种“正确”的编写资源的方式。
我像这样将依赖项注入到资源中:
api.add_resource(TicketsQuery, '/tickets/query',
'/ticket/query/<int:ticketID>',
resource_class_kwargs={'cleaner': Cleaner(StrategyResponseTickets()),
'machine_cleaner': Cleaner(StrategyResponseMachines()),
'db': soap_caller,
'cache': cache,
'field_map': app.config['FIELD_FILTER_MAP']['TICKETS'],
'endpoint_permission': TicketsQueryPermission
})
然后在资源中显示为 kwargs 参数。我还装饰了 init 中的函数,因为我需要类中的一个变量(自己进行装饰)。
class TicketsQuery(Resource):
def __init__(self, **kwargs):
# Dependencies
self.cleaner = kwargs['cleaner']
self.machine_cleaner = kwargs['machine_cleaner']
self.db = kwargs['db']
self.cache = kwargs['cache']
self.field_map = kwargs['field_map']
self.endpoint_permission = kwargs['endpoint_permission']
# Permissions of endpoint method calls, implemented using wrapper
self.get = authorization_required(self.endpoint_permission, UserType.GENERIC_EMPLOYEE)(self.get)
self.post = authorization_required(self.endpoint_permission, UserType.GENERIC_EMPLOYEE)(self.post)
def get(self, permission_set: TicketsPermissionSet, ticketID=-1):
这是在 Flask 中编写资源的正确方法吗?还是有更好的结构可以坚持?感谢您提供任何见解或提示!
【问题讨论】:
标签: python flask-restful pylint