Flask直接调用装饰器,python

Call decorators directly Flask, python

我正在尝试创建一个简单的 Rest API。

即使很简单,我也不想将所有内容混合在一个文件中。

因此我定义了单独的 classes

这是我的一些文件

app = Flask(__name__)

if __name__ == '__main__':
    api = PostApi(app)
    api.setup()
    api.set_routes()
    app.run(debug=True)

Post API class

class PostApi(对象): BASE_API_ROUTE = '/post'

def __init__(self, app):
    super(PostApi, self).__init__()
    self.app = app

def setup(self):
    self.api = Api(self.app)
    self.app.config['SECRET_KEY'] = SECRET['digest_key']

def set_routes(self):
    self.api.add_resource(PostCategories, self.BASE_API_ROUTE + "/categories")
    self.api.add_resource(PostCatalog, self.BASE_API_ROUTE + "/catalog")
    self.api.add_resource(PostTags, self.BASE_API_ROUTE + "/tags")

例如我的端点之一 classes

class PostTags(Resource):
    def __init__(self):
        super(PostTags, self).__init__()

    def get(self):
        return {'hello': 'world'}

有效,但我需要为我的路由添加身份验证。

如您所见,我没有使用 app.route 之类的路由装饰器,而是使用库 flask_restful.

在这种情况下,我需要使用 Digest Auth 来保护我的路由。但是,我不确定该怎么做,因为我没有使用装饰器

我是新手开发者。您能否建议如何使我的端点保持分离并对我的路由应用一些保护。

您可以使用 before_request。这将在每条路线上的每个请求之前被调用。

像这样:

@app.before_request
def before_request():
    //add your logic here

还有before_first_request

访问Flask Documentation了解更多信息。