Example of error handling in flask. (Part I).
在本範例你會學到:
- 簡易的 Flask API 架設 (上篇) -> 如果已經熟悉 flask 可直接跳下篇
- 使用 Flask lib 的
abort
控制錯誤訊息 (下篇) - 使用
traceback
、sys
套件追蹤自己想要的訊息 (下篇)
在本範例你需要先準備好:
- 確認有安裝好
python3
環境(請捨棄python2
) - 安裝
flask
,本文使用flask==1.0.2
- 有個簡易的
terminal
或是jupyter
環境 - 抱著輕鬆學習的心
1.import package
基本上就 import 下列的套件即可:
flask
: 今天的主角,一定要用traceback
: 今天的小重點,處理exception
的好套件sys
:也是小幫手之一
from flask import Flask, request, abort
import traceback
import sys
2.Flask 簡易教學
Flask 不是本文的重點,將會快速帶過如何確認架設成功與使用:
以下為 flask 標準的寫法,而其中的 app = Flask(__name__)
與 @app.route('/')
是什麼就暫時不贅述,聰明的你們在後面應該也會看得出來。
from flask import Flask, request, abort
app = Flask(__name__)
@app.route('/')
def index():
return 'connection is OK! '
if __name__ == '__main__':
app.run(host='0.0.0.0',port=1234, debug=False)
將以上的 code 在 terminal 或 jupyter 中執行,將會看到以下畫面:
看到畫面後請再開啟一個全新的 terminal 並輸入:
curl http://0.0.0.0:1234/
理論上你將會收到 connection is OK!
的回傳值,這就代表一切 ok,基本上就確定了 API 連線是沒問題的。
3.使用 post 方式打 API
這部分進行一些資料的準備,其實也不難,在剛剛的程式中再加入以下片段,建立了flask_api
並將水果清單打入,並直接回傳 A 所代表的水果,有沒有發現跟上面有什麼不同呢?
from flask import Flask, request, abort
app = Flask(__name__)
@app.route('/flask_api',methods=['POST'])
def flask_api():
post = request.json[0]
return post.get('A')
if __name__ == '__main__':
app.run(host='0.0.0.0',port=1234, debug=False)
在 terminal 執行打入水果清單:
curl -d '[{"A": "apple","B": "banana"}]' -H "Content-Type: application/json" -X POST http://0.0.0.0:1234/flask_api
將會得到 apple
的結果
參考資料
以上為上篇的內容,簡易的分享簡單的使用 Flask 打造自己的 API,更多細節有時間將會再分享,這次將著重於 error handling
教學的前置準備。
若有任何問題與指教歡迎與我聯繫,若覺得我的內容不錯麻煩幫我隨便點個廣告,謝謝。