Filed underИнженерная Практикаon•3 мин чтения

Освойте искусство выполнения скриптов Python в React.js

Раскройте потенциал Python и React.js для разработки высокопроизводительных веб-приложений. Python встречает React.js Веб-разработка часто сталкивается с разрыв...

Раскройте потенциал Python и React.js для разработки высокопроизводительных веб-приложений.

Python встречает React.js

Веб-разработка часто сталкивается с разрывом между языками фронтенда и бэкенда. Python со своей гибкостью и React.js с его динамикой часто находятся в разных мирах. Сегодня мы соединим их воедино и создадим симфонию кода, которая поднимет производительность вашего веб-приложения на новый уровень.

Настройка окружения: первые шаги

Прежде чем начать наше путешествие, вам понадобятся Node.js и Python. Если они еще не установлены, вы можете загрузить Node.js здесь и Python здесь. После установки инициализируйте новый проект Node.js и установите React.js с помощью npm.

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

Мост Python: наш скрипт

Создайте файл Python my_script.py, чтобы обеспечить функциональность бэкенда.

# my_script.py
def main():
    print("Python и React.js в гармонии!")
if __name__ == "__main__":
    main()

Этот скрипт Python выводит строку при вызове, простая функциональность, которую мы встроим в наше приложение React.js.

Помощь от Node.js: дочерние процессы

Нам нужен способ запускать наш скрипт Python из нашего приложения React на основе JavaScript. Node.js предоставляет модуль child_process для создания дочерних процессов. Мы будем использовать его для создания функции runPython в файле 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;

Сокрытие пропасти с помощью Express.js

Чтобы соединить наш фронтенд React с нашим бэкендом Python, мы привлечем Express.js. Определим маршрут Express.js в файле server.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.js вызывает Python: фронтенд

Наконец, мы добираемся до фронтенда. В нашем приложении 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;

Заключение

Мы успешно выполнили скрипт Python из приложения React.js. Сочетание гибкости Python и динамичности React.js может создавать веб-приложения с исключительной производительностью.

Часто задаваемые вопросы

  1. Можно ли выполнить любой скрипт Python таким образом? Да, вы можете выполнить любой скрипт Python таким образом. Однако будьте осторожны с复клексностью скрипта и его влиянием на производительность вашего приложения React.js.

  2. Возможно ли получить возвращаемое значение функции Python в нашем приложении React? Конечно! В нашей функции runPython вместо console.log вы можете возвращать данные, полученные из Python. Затем вы можете изменить маршрут Express.js для возврата этих данных в приложение React.js.

  3. Как обрабатывать ошибки скрипта Python в приложении React? Вы можете использовать событие stderr модуля child_process для обработки ошибок. Внутри функции runPython добавьте прослушиватель события stderr, который записывает или отправляет ошибку на фронтенд для обработки.

  4. Можно ли выполнять скрипты Python из приложений React Native? Прямое выполнение скриптов Python из приложений React Native не так просто, так как React Native работает в среде JavaScript. Однако вы можете запускать скрипт Python на сервере и взаимодействовать с ним из вашего приложения React Native с помощью HTTP-запросов.

  5. Этот метод эффективен для более крупных приложений? Этот метод подходит для небольших задач. Для более крупных приложений или более сложных задач рекомендуется использовать специализированный веб-фреймворк Python, такой как Django или Flask, и взаимодействовать с ним через API.

Назад ко всем статьямГлавная