發揮Python和React.js的潛力,打造高效能的網頁應用程式。
網頁開發通常會遇到前端和後端語言之間的鴻溝。Python具有多功能性,React.js則具有動態性,它們常常處於不同的世界中。今天,我們將把它們結合起來,創造一段能將網頁應用程式的效能提升到新水平的程式碼交響曲。
踏上我們的旅程,我們需要在工具包中準備Node.js和Python。如果尚未安裝,您可以從這裡下載Node.js,並從這裡下載Python。設置完成後,初始化一個新的Node.js項目並使用npm安裝React.js。
mkdir python-react
cd python-react
npm init -y
npm install --save react react-dom
編寫一個Python文件my_script.py
,以實現後端功能。
# my_script.py
def main():
print("Python和React.js和諧共處!")
if __name__ == "__main__":
main()
此Python腳本在調用時打印一行文字,這是我們將集成到React.js應用程式中的簡單功能。
我們需要一種方法從基於JavaScript的React應用程式中運行Python腳本。Node.js提供了child_process
模塊來生成子進程。我們將使用它在runPython.js
中創建一個runPython
函數。
const { spawn } = require('child_process');
const runPython = () => {
const process = spawn('python', ['./my_script.py']);
process.stdout.on('data', (data) => {
console.log(`Python: ${data}`);
});
};
module.exports = runPython;
為了搭建React前端和Python後端的橋樑,我們引入了Express.js。讓我們在server.js
中定義一個Express.js路由,執行runPython
函數並將結果返回。
const express = require('express');
const runPython = require('./runPython');
const app = express();
const port = 3000;
app.get('/run-python', (req, res) => {
runPython();
res.send('執行Python腳本');
});
app.listen(port, () => {
console.log(`伺服器監聽於 http://localhost:${port}`);
});
最後,我們抵達了前端。在我們的React應用程式中,我們將發出GET請求到我們的Express.js路由,以運行Python腳本。我們將使用axios
套件來處理HTTP請求。
import React, { useEffect } from 'react';
import axios from 'axios';
function App() {
useEffect(() => {
axios.get('http://localhost:3000/run-python')
.then((res) => console.log(res.data))
.catch((error) => console.log(error));
}, []);
return (
<div className="App">
檢查控制台!
</div>
);
}
export default App;
我們成功從React.js應用程式中運行了一個Python腳本。Python的多功能性和React.js的動態性共同創造了具有卓越性能的網頁應用程式。
runPython
函數中,您可以返回從Python接收到的數據。然後,您可以修改Express路由,將此數據返回給React.js應用程式。child_process
的stderr
事件來處理錯誤。在runPython
函數內部,添加一個stderr
的事件監聽器,用於記錄錯誤或將錯誤發送到前端進行處理。[Reactjs] 如何使用useImperativeHandle調用子組件函數 |
---|
掌握在React.js中運行Python腳本的技巧 |
Jotai 將 React 狀態管理推進到下一個層次 |
CloneCoding
創新從一行代碼開始!