我是python的新手,目前正在使用Flask rest-plus提供基本的CRUD操作和针对不同资源的详尽文档。
当前我正在做什么
api = DTO.api
_response = DTO.response
_response_list = DTO.response_list
@api.route('/')
class SomeResourcetList(Resource):
@api.marshal_with(_response_list)
def get(self):
return some_list_response
@api.marshal_with(_response)
def post(self):
return "Object created"
@api.route('<equipment_id>')
class SomeResource(Resource):
@api.marshal_with(_response)
def get(self):
return some_response_object
@api.marshal_with(_response)
def put(self):
return some_updated_response
def delete(self):
return "Some delete response
以上操作正常,并为资源/实体提供CRUD
我想要的东西: 我想在BaseClass中放置2个以上的类,以便可以从它们继承我的资源类,并且所有基本的CRUD操作都已包括在内(以保持代码干燥)。但是这样做会导致内部类无法访问外部类变量(在我的情况下是 api ) 我有什么办法可以做到这一点?
class BaseController:
def __init__(self, resource = 'equipment'):
self.__Resource = resource
# initialize api from child object
self.api = PersonDTO.api
@api.route('/')
class SomeResourcetList(Resource):
@api.marshal_with(_response_list)
def get(self):
return some_list_response
@api.marshal_with(_response)
def post(self):
return "Object created"
@api.route('<equipment_id>')
class SomeResource(Resource):
@api.marshal_with(_response)
def get(self):
return some_response_object
是否有上述问题的解决方法(我们可以在内部类中访问变量)还是有其他解决方法?