Колба, как jsonify ТОЛЬКО при возврате в браузер
Я пытаюсь построить RESTful
API-сервер с Flask, и создать некоторые функции, которые могут вернуть JSON
форматировать данные в браузере.
Теперь я надеюсь сделать код более пригодным для повторного использования, например:
@simple_page.route('/raw_data')
def raw_data():
# to json
pass
@simple_page.route('/score')
def score():
data = raw_data()
# some calculation & return the score (to json)
pass
Если есть какой-либо способ во Flask, что функция raw_data()
возвращает результат в формате json if and only if
результат будет отправлен обратно в браузер? (Что-то вроде @cherrypy.tools.json_out()
делает в вишне)
Заранее спасибо.
1 ответ
Решение
Фактор производства raw_data()
в отдельную функцию, повторно используемую обоими маршрутами:
def _produce_raw_data():
return raw_data
@simple_page.route('/raw_data')
def raw_data():
return jsonify(_produce_raw_data())
@simple_page.route('/score')
def score():
data = _produce_raw_data()
# some calculation & return the score (to json)
return jsonify(calculation_results)