【 Integrate 】使用 python-shell 整合 Node.js 與 Python
內容
- 學習目標
- 前置準備作業
- 程式與軟體
- Node.js 程式
- Python 程式
- 測試
學習目標
- 透過 Node.js 的 Express 建立一支 API,並經由
python-shell
來呼叫 Python 程式,並將結果再回傳給用戶端
前置準備作業
- IDE
- 已安裝
Node.js
- 已安裝
Python 3
程式與軟體
- Node.js
- Python
Node.js 程式
Step 1. 建立 Node.js 環境與安裝相依套件
- 建立專案資料夾
- 本範例將資料夾命名為
integrating-Node-and-Python
- 本範例將資料夾命名為
- 透過
終端機
切換路徑到integrating-Node-and-Python
資料夾- 指令為
cd integrating-Node-and-Python
- 指令為
- 請在
終端機
依序執行下方指令-
建立環境
npm init -y
-
建立環境
npm i express
-
建立環境
npm i python-shell
-
Step 2. 透過 Visual Studio Code
開啟專案資料夾
-
請在
終端機
執行下方指令code .
Step 3. 撰寫 Node.js
程式
-
新增名為
app-call-python-shell.js
的程式
-
程式如下
- 說明如下
- 第 1 與第 2 行:引用
express
套件並使用 - 第 3 行:引用
python-shell
套件 - 第 5 到第 7 行:啟動伺服器並在埠
3000
接聽連線 - 第 9 行:宣告一個為
Get
方法的 API,其 Route 為/call/python
- 第 11 到第 27 行:為
Get /call/python
API 的處理內容 - 第 12 到第 18 行:將 Query String 的
name
與from
包成options
的物件 - 第 20 到第 25 行:將
options
物件的資料傳送給process.py
的 Python 程式,當執行回完成後,如有錯誤發生會將訊息放於err
變數,否則執行成功會將結果存放到data
變數中,並將結果回傳給用戶端
- 第 1 與第 2 行:引用
- 說明如下
Python 程式
Step 1. 撰寫 Python
程式
-
新增名為
process.py
的程式
-
程式如下
- 說明如下
- 第 1 與第 2 行:引用
sys
與json
套件並使用 - 第 4 到第 7 行:將 Query String 的
name
與from
包成result
物件 - 第 9 行:轉成資料為字串
- 第 11 到第 12 行:將結果回傳給
Node.js
程式
- 第 1 與第 2 行:引用
- 說明如下
測試
Step 1. 執行 Node.js
程式
-
請在
終端機
執行下方指令node app-call-python-shell.js
Step 2. 開啟瀏覽器呼叫 API
-
請在
瀏覽器
輸入下方網址http://localhost:3000/call/python?name=Archer&from=Taipei
-
當執行成功後會顯示如下資訊