Filed underKinh nghiệm Lập trìnhon•5 phút đọc

Thành thạo nghệ thuật chạy script Python trong React.js

Khai thác tiềm năng của Python và React.js để phát triển các ứng dụng web có hiệu suất cao. Python Gặp React.js Phát triển web thường gặp sự chia cắt giữa các n...

Khai thác tiềm năng của Python và React.js để phát triển các ứng dụng web có hiệu suất cao.

Python Gặp React.js

Phát triển web thường gặp sự chia cắt giữa các ngôn ngữ frontend và backend. Python, với tính linh hoạt của nó, và React.js, với tính động của nó, thường tồn tại ở hai thế giới khác nhau. Hôm nay, chúng ta sẽ kết hợp chúng lại và tạo ra một vở kịch mã lệnh mang ứng dụng web của bạn lên một tầm cao mới.

Thiết Lập Môi Trường: Những Bước Đầu Tiên

Trong cuộc hành trình này, chúng ta cần có Node.js và Python trong bộ công cụ của mình. Nếu bạn chưa cài đặt, bạn có thể tải Node.js từ đây và Python từ đây. Khi đã hoàn tất, khởi tạo một dự án Node.js mới và cài đặt React.js bằng npm.

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

Cầu Nối Python: Kịch Bản Của Chúng Ta

Tạo một tệp Python, my_script.py, để đáp ứng chức năng phía backend.

# my_script.py
def main():
    print("Python và React.js hòa hợp nhau!")
if __name__ == "__main__":
    main()

Kịch bản Python này in một dòng khi được gọi, một chức năng đơn giản mà chúng ta sẽ tích hợp vào ứng dụng React.js của chúng ta.

Node.js Cứu Vớt: Quy Trình Con

Chúng ta cần một cách để chạy kịch bản Python của chúng ta từ trong ứng dụng React dựa trên JavaScript. Node.js cung cấp module child_process để tạo các quy trình con. Chúng ta sẽ sử dụng nó để tạo một hàm runPython trong 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;

Chắp Cánh Sự Khác Biệt với Express.js

Để nối liền phần frontend React và phần backend Python, chúng ta sẽ mang Express.js vào bức tranh. Hãy định nghĩa một route Express.js trong server.js thực thi hàm runPython và gửi kết quả trở lại.

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

app.get('/run-python', (req, res) => {
  runPython();
  res.send('Kịch Bản Python Đã Được Thực Thi');
});

app.listen(port, () => {
  console.log(`Server lắng nghe tại http://localhost:${port}`);
});

React.js Gọi Python: Phần Frontend

Cuối cùng, chúng ta đến phần frontend. Trong ứng dụng React của chúng ta, chúng ta sẽ thực hiện một yêu cầu GET đến route Express.js của chúng ta để chạy kịch bản Python. Chúng ta sẽ sử dụng gói axios để xử lý các yêu cầu 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">
      Kiểm tra console!
    </div>
  );
}

export default App;

Kết Luận

Chúng ta đã thành công trong việc chạy một kịch bản Python từ một ứng dụng React.js. Sự hòa hợp giữa tính linh hoạt của Python và tính động của React.js có thể tạo ra các ứng dụng web với hiệu suất đáng chú ý.

Câu Hỏi Thường Gặp

  1. Chúng ta có thể chạy bất kỳ kịch bản Python nào theo cách này không? Có, bạn có thể chạy bất kỳ kịch bản Python nào theo cách này. Tuy nhiên, hãy cẩn thận với độ phức tạp của kịch bản và cách nó có thể ảnh hưởng đến hiệu suất của ứng dụng React.js của bạn.

  2. Có thể nhận giá trị trả về từ hàm Python trong ứng dụng React của chúng ta không? Tất nhiên! Trong hàm runPython, thay vì sử dụng console.log, bạn có thể trả về dữ liệu nhận được từ Python. Sau đó, bạn có thể chỉnh sửa route Express để trả về dữ liệu này cho ứng dụng React.js.

  3. Làm thế nào để xử lý lỗi kịch bản Python trong ứng dụng React của chúng ta? Bạn có thể sử dụng sự kiện stderr của module child_process để xử lý lỗi. Trong hàm runPython, thêm một bộ lắng nghe sự kiện cho stderr, nơi bạn có thể ghi log hoặc gửi lỗi đến phía frontend để xử lý.

  4. Có thể thực thi các kịch bản Python từ các ứng dụng React Native không? Việc thực thi các kịch bản Python trực tiếp từ các ứng dụng React Native không đơn giản, vì React Native chạy trong một môi trường JavaScript. Tuy nhiên, bạn có thể thực thi một kịch bản Python trên một máy chủ và giao tiếp với nó từ ứng dụng React Native của bạn bằng cách sử dụng các yêu cầu HTTP.

  5. Phương pháp này có hiệu quả cho các ứng dụng lớn hơn không? Phương pháp này phù hợp cho các nhiệm vụ nhẹ nhàng. Đối với các ứng dụng lớn hơn hoặc các nhiệm vụ phức tạp hơn, hãy xem xét việc sử dụng một framework web Python chuyên dụng như Django hoặc Flask và giao tiếp với nó thông qua một API.

Quay lại tất cả bài viếtTrang chủ