Flask-RESTful, можем ли мы вызвать метод перед получением и публикацией в Ressource? - PullRequest
0 голосов
/ 07 февраля 2019

Я использую Flask-RESTful в своем приложении.

Я бы хотел вызывать метод перед каждой публикацией Ressource и получать, чтобы мой код не дублировался.

Так что в основном здесьчто у меня есть:

class SomeClass(Resource):
    def __init__():
        # Some stuff

    def get(self, **kwargs):
        # some code

    def post(self, **kwargs):
        # the same code as in get method

Я хотел бы вызвать метод перед получением и публикацией, чтобы мой код не дублировался.

Есть ли какой-нибудь способ, которым я могу добиться этого?

1 Ответ

0 голосов
/ 07 февраля 2019

Попробуйте написать функцию декоратора и используйте ее с вашими get() и post() методами.Подробнее здесь .

Декоратор больше похож на обертку для вашей функции, где ваша функция заключена в функцию, которая возвращает вашу функцию.

Скажите, вы хотитеЧтобы выполнить некоторую проверку перед обработкой, вы можете написать декоратор, например:

from functools import wraps

def validate(actual_method):
    @wraps(actual_method)  # preserves signature
    def wrapper(*args, **kwargs):
        # do your validation here

        return actual_method(*args, **kwargs)

    return wrapper

, затем использовать его в своем коде так же просто, как:

class SomeClass(Resource):
    def __init__():
        # Some stuff

    @validate
    def get(self, **kwargs):
        # some code

    @validate
    def post(self, **kwargs):
        # the same code as in get method
...