瓶的RESTful我们可以调用一个方法之前获取并发布到的ressource?

问题描述 投票:2回答:1

我在我的应用程序中使用瓶的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

我想有一个方法调用之前get和post所以我的代码不重复。

有没有什么办法可以实现这样做呢?

python flask flask-restful
1个回答
3
投票

尝试写一个装饰功能,与你的get()post()方法使用它。更多信息here

装饰器更像是一个包装的功能,你的功能是包裹在返回你的函数的函数。

再说了,你想要做处理之前,你可以写这样的装饰一些验证:

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
© www.soinside.com 2019 - 2024. All rights reserved.