2
我有問題可以將裝飾器應用於我的Resource
。 Api
decorators
參數被應用於每個資源函數或我該如何理解decorators
參數?我的裝飾器只在啓動時應用,而不是在每個函數調用中應用。我究竟做錯了什麼?如何將Flask-RESTPlus的裝飾器用於每個函數調用?
from flask import Flask, Blueprint
from flask.ext.restplus import Api, Resource, fields
app = Flask(__name__)
def my_decorator(input):
print("my decorator")
return input
api_blueprint = Blueprint('index', __name__, url_prefix='/0')
api = Api(api_blueprint, version='0.1.0', title='Index API',
description='The Index API helps to find things faster in the own database',
# ui=False,
decorators=[my_decorator]
)
app.register_blueprint(api_blueprint)
ns = api.namespace('index', description='Index API')
search_id_score_model = api.model('id', {
'id': fields.String(required=True),
'score': fields.Float(required=True)
})
search_result_model = api.model('result', {
'key': fields.String(required=True),
'ids': fields.List(fields.Nested(search_id_score_model, required=True), required=True)
})
@ns.route('/search/<string:query>')
class Search(Resource):
'''Serach'''
@api.marshal_list_with(search_result_model)
@my_decorator
def get(self, query):
'''fetch result by query'''
return None
if __name__ == '__main__':
app.run(debug=True)
好的,我找到了[method_decorators](https://flask-restful.readthedocs.org/en/latest/extending.html#resource-method-decorators),並且可以將我的裝飾器應用於每個方法調用。我仍然想知道如何理解「restful.Api」中的裝飾器參數,以及如何不重複每個資源。 – swiesend