Flask 系列 - Flask error handling 教學(ㄧ)

Example of error handling in flask. (Part I).

在本範例你會學到:

  • 簡易的 Flask API 架設 (上篇) -> 如果已經熟悉 flask 可直接跳下篇
  • 使用 Flask lib 的 abort 控制錯誤訊息 (下篇)
  • 使用 tracebacksys 套件追蹤自己想要的訊息 (下篇)

在本範例你需要先準備好:

  • 確認有安裝好 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 中執行,將會看到以下畫面:

flask 執行畫面

看到畫面後請再開啟一個全新的 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教學的前置準備。

若有任何問題與指教歡迎與我聯繫,若覺得我的內容不錯麻煩幫我隨便點個廣告,謝謝。


 上一篇
Flask 系列 - Flask error handling 教學(二) Flask 系列 - Flask error handling 教學(二)
Example of error handling in flask. (Part II).在本範例你會學到: 簡易的 Flask API 架設 (上篇) 使用 Flask lib 的 abort 控制錯誤訊息 (下篇) 使用 trac
2020-02-19
下一篇 
MAC terminal 的常用快捷鍵分享 MAC terminal 的常用快捷鍵分享
How to use hot key to move mouse in termal with mac?日常寫 code 常常會用到 terminal,但是剛開始使用 mac 時真的會使用的一頭霧水,尤其是想要針對在vim中指令很長的程式進
2020-02-05
  目錄