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了解更多信息。
我正在尝试创建一个简单的 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了解更多信息。