3
我正在一個小型web界面上運行一個覆盆子pi在家裏。它承載了一些REST API以及一些網頁。Python燒瓶 - json和html 404錯誤
我正在使用Flask,並且有一條路徑爲'/'
的索引,以及一些路由爲REST api '/api/v1.0/tasks'
。
@app.route('/')
def index():
return render_template('index.html')
@app.route('/gnodes/api/v1.0/tasks', methods=['GET'])
def get_tasks():
return jsonify({'tasks': tasks})
@app.route('/gnodes/api/v1.0/tasks/<int:task_id>', methods=['GET'])
def get_task(task_id):
task = [task for task in tasks if task['id'] == task_id]
if not task:
abort(404)
return jsonify({'task': task[0]})
然而,abort(404)
返回一個HTML錯誤頁面,這是罰款正常的頁面,但我想在請求一個不存在的任務返回一個JSON。
所以我已經覆蓋了的ErrorHandler:
@app.errorhandler(404)
def not_found(error):
return make_response(jsonify({'error': 'Not found'}), 404)
不過,現在所有的錯誤返回JSON,而不僅僅是API錯誤。
所以我的問題,我怎樣才能使API失敗的請求返回json錯誤,但其他錯誤默認的html錯誤頁面?
@ cricket_007哦,目前這只是一個全局變量,儘管稍後將被代碼尋找數據庫中的任務所取代。 –
做一個自定義的裝飾器來處理失敗的api請求 –
@TheOddler任何方式什麼是任務或在何處定義在這方面無關 –