Многоразовые операции CRUD с Flask RestPlus
Я новичок в 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 для ресурса / объекта
Что я хочу: я хочу поместить выше 2 классов в BaseClass, чтобы я мог наследовать свой класс ресурсов от них, и все основные операции 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
Есть ли какое-либо исправление для вышеуказанной проблемы (в которой мы можем получить доступ к переменным внутри внутренних классов) или есть еще одна работа?