Filed underPratique & Développementon•4 min de lecture

Maîtrisez l'art d'exécuter des scripts Python dans React.js

Exploitez le potentiel de Python et de React.js pour développer des applications web performantes. Python rencontre React.js Le développement web rencontre souv...

Exploitez le potentiel de Python et de React.js pour développer des applications web performantes.

Python rencontre React.js

Le développement web rencontre souvent un fossé entre les langages front-end et back-end. Python, avec sa polyvalence, et React.js, avec sa dynamique, restent souvent dans des mondes différents. Aujourd'hui, nous les réunirons et créerons une symphonie de code qui propulsera les performances de votre application web vers de nouveaux sommets.

Configuration de l'environnement : Les premiers pas

Pour entamer notre voyage, nous avons besoin de Node.js et de Python dans notre boîte à outils. Si ce n'est pas déjà fait, vous pouvez télécharger Node.js depuis ici et Python depuis ici. Une fois installés, initialisez un nouveau projet Node.js et installez React.js à l'aide de npm.

mkdir python-react
cd python-react
npm init -y
npm install --save react react-dom

Le pont Python : Notre script

Créez un fichier Python, my_script.py, pour assurer la fonctionnalité back-end.

# my_script.py
def main():
    print("Python et React.js en harmonie !")
if __name__ == "__main__":
    main()

Ce script Python affiche une ligne lorsqu'il est invoqué, une fonctionnalité simple que nous intégrerons à notre application React.js.

Node.js à la rescousse : Processus enfants

Nous avons besoin d'un moyen d'exécuter notre script Python depuis notre application React basée sur JavaScript. Node.js fournit le module child_process pour lancer des processus enfants. Nous l'utiliserons pour créer une fonction runPython dans runPython.js.

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;

Combler le fossé avec Express.js

Pour relier notre front-end React à notre back-end Python, introduisons Express.js. Définissons une route Express.js dans server.js qui exécute la fonction runPython et renvoie le résultat.

const express = require('express');
const runPython = require('./runPython');
const app = express();
const port = 3000;

app.get('/run-python', (req, res) => {
  runPython();
  res.send('Script Python exécuté');
});

app.listen(port, () => {
  console.log(`Serveur à l'écoute sur http://localhost:${port}`);
});

React.js appelle Python : Le front-end

Enfin, nous arrivons au front-end. Dans notre application React, nous ferons une requête GET vers notre route Express.js pour exécuter le script Python. Nous utiliserons le package axios pour gérer les requêtes 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">
      Vérifiez la console !
    </div>
  );
}

export default App;

Conclusion

Nous avons réussi à exécuter un script Python depuis une application React.js. L'association de la polyvalence de Python et de la dynamique de React.js permet de créer des applications web offrant des performances exceptionnelles.

Foire aux questions

  1. Pouvons-nous exécuter n'importe quel script Python de cette manière ? Oui, vous pouvez exécuter n'importe quel script Python de cette manière. Cependant, faites attention à la complexité du script et à son impact éventuel sur les performances de votre application React.js.

  2. Est-il possible d'obtenir la valeur de retour de la fonction Python dans notre application React ? Absolument ! Dans notre fonction runPython, au lieu de console.log, vous pouvez retourner les données reçues de Python. Vous pouvez ensuite modifier la route Express pour renvoyer ces données à l'application React.js.

  3. Comment pouvons-nous gérer les erreurs du script Python dans notre application React ? Vous pouvez exploiter l'événement stderr du module child_process pour gérer les erreurs. À l'intérieur de la fonction runPython, ajoutez un écouteur d'événement pour stderr, qui enregistre ou envoie l'erreur à votre front-end pour la gérer.

  4. Pouvons-nous exécuter des scripts Python à partir d'applications React Native ? Exécuter des scripts Python directement depuis des applications React Native n'est pas simple, car React Native s'exécute dans un environnement JavaScript. Cependant, vous pouvez exécuter un script Python sur un serveur et communiquer avec lui depuis votre application React Native à l'aide de requêtes HTTP.

  5. Cette méthode est-elle efficace pour les applications plus importantes ? Cette méthode convient aux tâches légères. Pour les applications plus importantes ou les tâches plus complexes, envisagez d'utiliser un framework web Python dédié comme Django ou Flask et de communiquer avec lui via une API.

Retour à tous les articlesAccueil