【问题标题】:Call decorators directly Flask, python直接调用装饰器 Flask, python
【发布时间】:2018-02-27 10:49:01
【问题描述】:

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

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

因此我定义了单独的类

这是我的一些文件

app = Flask(__name__)

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

发布 API 类

类 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")

例如我的端点类之一

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

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

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

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

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

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

【问题讨论】:

  • 你试过before_request吗?
  • @EdgarHenriquez 就像一个魅力,发表您的评论作为答案

标签: python python-2.7 flask python-decorators digest-authentication


【解决方案1】:

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

类似这样的:

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

还有before_first_request

访问Flask Documentation了解更多信息。

【讨论】:

    猜你喜欢
    • 2020-07-15
    • 2014-02-16
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    相关资源
    最近更新 更多