У меня есть следующие маршруты Flask и пользовательский помощник:
from spots import app, db
from flask import Response
import simplejson as json
def json_response(action_func):
def create_json_response(*args, **kwargs):
ret = action_func(*args, **kwargs)
code = 200
if len(ret) == 2:
code = ret[0]
resp = ret[1]
else:
resp = ret[0]
return Response(
response=json.dumps(resp, indent=4),
status=code,
content_type='application/json'
)
return create_json_response
@app.route('/test')
@json_response
def test():
return 400, dict(result="Test success")
@app.route('/')
@json_response
def home():
return 200, dict(result="Home success")
Я ожидаю, что запрос GET к /test вернет что-то вроде {"result":"Test Success"}
, но это не так. Вместо этого кажется, что любой запрос соответствует последнему маршруту, т.е. home
. Почему?
Интересно, так ли это? вызвано некоторым отсутствием изоляции между различными вызовами json_response
?
Заранее спасибо.