python
covid-19
colab
flask
RapidAPI是一個API的市集,就像Apple的App Store和Google PlayStore上面有各式各樣的App可以下載一樣,只是這裡可以讓你找到的不是APP,而是API,讓你不需要再發明輪子,直接使用全世界各國的開發者開發好的功能,讓你可以快速建立你的應用。
API並非開放使用,每次的呼叫都遠端都會確認有經過授權,因為API的運作需要源源不斷的雲端服務,因為為了阻擋沒有經過同意的呼叫,每次呼叫API時都必須帶入這個Application Key。
申請或修改Application Key可以到「MyApps」選擇左邊已經建立App名稱,然後到「Security」頁面下設定。
模組名稱 | 說明 | 安裝 |
---|---|---|
Flask | 開發網站用 | pip3 install flask |
requests | HTTP要求模組,用來直接透過網路讀取網頁資料 | pip3 install requests |
Json | 操作CSV檔案格式模組 | 不需安裝 |
本範例使用的API:https://rapidapi.com/KishCom/api/covid-19-coronavirus-statistics
這只是一個範例,並非真實的Application Key,請填入跟RapidAPI申請的Application Key,每個人會不同。
注意:
x-rapidapi-key
欄位內需要填入RapidAAPI配發的Application Key。
index.html
靜態網頁檔案,可以直接用瀏覽器打開觀看結果。127.0.0.1
就可以打開該網頁。因為Google Colab是雲端環境,所有的程式碼都是在雲端執行,因此我們無法直接在雲端啟動一個Flask HTTP伺服器來接受外面的連線;所以需要透過其他方式處理。
ngrok這個服務可以幫忙來把連線的要求用轉接的方式幫忙轉到Colab裡面去,而且有提供Pyhon模組支援,且使用簡易,只需要加少少的程式碼就可以做到使用Colab來啟動HTTP伺服器。
使用步驟如下:
安裝flask-ngrok
模組,Colab並沒有支援ngrok,所以要額外安裝。
補充
在瀏覽器關閉以前,只需要安裝一次即可,因此可以額外開一個新的Cell來執行這個安裝指令。
引入flask-ngrok
模組
補充
可以在
from flask import Flask
上面來進行引入。
加上將Flask物件轉拋給ngrok套件的程式碼:
補充
請將該行加在
app = Flask(__name__)
下面即可。
將最後app.run()
內的參數全部移除:
說明
紅框圈起來就是ngrok服務幫忙轉拋的網址,點擊該連結就可以打開剛剛開發的網頁;只是每次重新執行程式都會變,舊的會失效,請使用每次執行後新的網址來測試網頁。