PythonとReact.jsの可能性を引き出して、高性能なWebアプリケーションを開発しましょう。
Web開発では、フロントエンドとバックエンドの言語の間には、しばしば溝が存在します。Pythonはその多機能性で知られ、React.jsはそのダイナミズムで知られており、それらはしばしば異なる世界に存在します。今日は、それらを一緒に組み合わせて、Webアプリケーションのパフォーマンスを次のレベルに引き上げるコードの交響曲を作りましょう。
旅に出る前に、ツールキットには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スクリプトは、呼び出されたときに1行のテキストを表示します。これは、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アプリケーションでは、Express.jsのルートにGETリクエストを行い、Pythonスクリプトを実行します。HTTPリクエストを処理するためにaxios
パッケージを使用します。
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のダイナミシティの組み合わせにより、優れたパフォーマンスを持つWebアプリケーションを作成できます。
runPython
関数内では、Pythonから受け取ったデータを返すことができます。その後、Expressのルートを修正してこのデータをReact.jsアプリケーションに返すことができます。child_process
のstderr
イベントを利用することができます。runPython
関数内にstderr
のイベントリスナーを追加し、エラーをログに記録したりフロントエンドに送信して処理することができます。[Reactjs] useImperativeHandleを使用して子コンポーネント関数を呼び出す方法 |
---|
React.jsでPythonスクリプトを実行する方法を習得 |
JotaiはReactの状態管理を次のレベルに進めます |
CloneCoding
1行のコードから始まる革新!