Hướng dẫn can you integrate python with javascript? - bạn có thể tích hợp python với javascript không?

Nhiều ví dụ là nhiều năm lỗi thời và liên quan đến thiết lập phức tạp. Bạn có thể thử JSpyBridge (tiết lộ đầy đủ: Tôi là tác giả).

Đó là một cây cầu hai chiều cho phép bạn sử dụng mã JavaScript từ Python và ngược lại. Điều đó có nghĩa là mã Python có thể gọi các cuộc gọi lại của JS và mã JS có thể gọi các cuộc gọi lại Python.

Truy cập Python từ ví dụ JS, Numpy + Matplotlib, với hệ thống nhập ES6:

import { py, python } from 'pythonia'
const np = await python('numpy')
const plot = await python('matplotlib.pyplot')

// Fixing random state for reproducibility
await np.random.seed(19680801)
const [mu, sigma] = [100, 15]
// Inline expression evaluation for operator overloading
const x = await py`${mu} + ${sigma} * ${np.random.randn(10000)}`

// the histogram of the data
const [n, bins, patches] = await plot.hist$(x, 50, { density: true, facecolor: 'g', alpha: 0.75 })
console.log('Distribution', await n) // Always await for all Python access
await plot.show()
python.exit()

Thông qua CommonJS (không có cấp cao nhất đang chờ đợi):

const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.

Truy cập JS từ Python:

from javascript import require, globalThis

chalk, fs = require("chalk"), require("fs")

print("Hello", chalk.red("world!"), "it's", globalThis.Date().toLocaleString())
fs.writeFileSync("HelloWorld.txt", "hi!")

Bạn có thể lưu đoạn mã bên dưới và kiểm tra nó bằng

const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
1.JavaScript and Python, I wanted to find how to use both and get the benefit from their rich development environment. So I searched many candidates and found python-bridge useful.

Trong bài đăng này, chúng tôi sẽ học cách sử dụng nó với JavaScript Async đang chờ đợi. Bạn sẽ thấy rằng thật dễ dàng nếu bạn đã viết mã cho cả hai ngôn ngữ.

Điều kiện tiên quyết

  1. python-bridge
  2. JavaScript Lập trình async
  3. Cách sử dụng PIP
  4. Cách sử dụng NPM

Tôi sẽ cho rằng bạn đã biết cách xử lý các gói trong Python và JavaScript.Python and JavaScript.

Bạn nên đọc kho lưu trữ cầu Python và làm theo các ví dụ trước khi bạn đọc bài viết này.

Bài đăng về chương trình Async của Javascirpt sẽ giúp bạn hiểu cách sử dụng nó rất nhiều.

Nếu bạn chỉ muốn xem toàn bộ mã trước, bạn có thể tìm thấy kết quả cuối cùng của bài đăng này tại kho lưu trữ Pyscript.

Mục lục

  1. Làm thế nào Python-Bridge hoạt động
  2. Cách cải thiện ví dụ với Async đang chờ đợi
  3. Cách sử dụng các gói Python trong JavaScript
  4. So sánh gói JavaScript tương đương với gói Python
  5. Sự kết luận

1. Cách thức hoạt động của Python-Bridge

Tôi hy vọng bạn đã đầu tư thời gian của mình để đọc tài liệu cho Python-Bridge.

Ví dụ chính cho điều đó là

'use strict';

let assert = require('assert');
let pythonBridge = require('python-bridge');

let python = pythonBridge();

python.ex`import math`;
python`math.sqrt(9)`.then(x => assert.equal(x, 3));

let list = [3, 4, 2, 1];
python`sorted(${list})`.then(x => assert.deepEqual(x, list.sort()));

python.end();

Nhập chế độ FullScreenen EXIT Mode FullScreen

Nếu bạn chưa có, vui lòng cài đặt gói Python-Bridge trước với những thứ này và tạo một tệp có đoạn mã bên dưới.

$yarn add python-bridge
$touch py.js

Nhập chế độ FullScreenen EXIT Mode FullScreen

Nếu bạn chưa có, vui lòng cài đặt gói Python-Bridge trước với những thứ này và tạo một tệp có đoạn mã bên dưới.

 python.ex`import math`;
 python`math.sqrt(9)`.then(x => assert.equal(x, 3));

Nhập chế độ FullScreenen EXIT Mode FullScreen

Nếu bạn chưa có, vui lòng cài đặt gói Python-Bridge trước với những thứ này và tạo một tệp có đoạn mã bên dưới.

Nếu bạn chơi với nó trong một thời gian với

const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
1, bạn sẽ thấy rằng API chính của nó là
const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
2 và
const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
3.Promise to consume return value from Python(x in example).

Giống như chúng đã được sử dụng ở trên.Node and Python installed in your machine and tested it, you will find it work without problem.

Bạn có thể thấy rằng nó sử dụng JavaScript Promise để tiêu thụ giá trị trả về từ Python (ví dụ: X).JavaScript to Python.

Nếu bạn có cả nút và python được cài đặt trong máy của bạn và kiểm tra nó, bạn sẽ thấy nó hoạt động mà không gặp vấn đề gì.Python in JavaScript and call data from Python Virtual Machine to Node.

Cũng cần lưu ý rằng chúng ta nên sử dụng cú pháp

const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
4 để chuyển biến từ JavaScript sang Python.Python and its modules inside JavaScript with Promise API.

Điều đó là hợp lý bởi vì chúng tôi đang sử dụng Python trong JavaScript và gọi dữ liệu từ máy ảo Python đến nút.

Điều này đã rất tuyệt. Bạn có thể sử dụng Python và các mô -đun của nó bên trong JavaScript với API Promise.

Bạn có thể kiểm tra nó với các mô -đun Python yêu thích của bạn như Numpy, Pandas, Pyautogui, v.v. tại thời điểm này hoặc các mô -đun được xây dựng khác nếu bạn muốn.

Để làm điều đó, bạn phải sử dụng

const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
5 và
const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
6 để kích hoạt env ảo đó và cài đặt các phụ thuộc bạn muốn kiểm tra trước và nên ở cùng một thư mục nơi đặt gói của bạn.Promise to save and use various datas calculated from Python code and modules such as Numpy and Pandas.

2. Cách cải thiện ví dụ với Async đang chờ đợiPython as variables and use them inside JavaScript whenever we want.

Bạn có thể đã thấy nó hữu ích rồi. Nhưng, không dễ sử dụng chỉ hứa hẹn sẽ lưu và sử dụng các dữ liệu khác nhau được tính toán từ mã Python và các mô -đun như Numpy và Pandas.

// index.js
'use strict';

const assert = require('assert');
const python = require('python-bridge');

const py = python(); // return value

const {
  ex, // no return value
  end,
} = py;

const list = [3, 4, 2, 1];

ex`import math`

async function pyscript() {
  try {
    let math = await py`math.sqrt(9)`;
    let sort = await py`sorted(${list})`;

    assert.eqaul(math, 3);
    assert.deepEqual(sort, list.sort());

  } catch (e) {
    console.log(e)
  }
  end();
}

(async () => {
  pyscript();
  console.log("Python works in JavaScript");
})().catch(error => {
  console.log("error");
  console.error(error);
});

Nhập chế độ FullScreenen EXIT Mode FullScreen

Nếu bạn chưa có, vui lòng cài đặt gói Python-Bridge trước với những thứ này và tạo một tệp có đoạn mã bên dưới.async await.

Nếu bạn chơi với nó trong một thời gian với

const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
1, bạn sẽ thấy rằng API chính của nó là
const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
2 và
const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
3.

Giống như chúng đã được sử dụng ở trên.$node py.js and hope it would work well.

Bạn có thể thấy rằng nó sử dụng JavaScript Promise để tiêu thụ giá trị trả về từ Python (ví dụ: X).

Nếu bạn có cả nút và python được cài đặt trong máy của bạn và kiểm tra nó, bạn sẽ thấy nó hoạt động mà không gặp vấn đề gì.await keyword whenever you want to save data from Python as variables. Use them whenever you want later.

Cũng cần lưu ý rằng chúng ta nên sử dụng cú pháp

const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
4 để chuyển biến từ JavaScript sang Python.async before function name and await for value from Python Virtual Machine We can pass datas easily between Python and JavaScirpt and use both in the same .js file with python-bridge.

Điều đó là hợp lý bởi vì chúng tôi đang sử dụng Python trong JavaScript và gọi dữ liệu từ máy ảo Python đến nút.

Điều này đã rất tuyệt. Bạn có thể sử dụng Python và các mô -đun của nó bên trong JavaScript với API Promise.

// py.js
const python = require('python-bridge');

const py = python(); // return value
const { end } = py;

async function bigNumberToHex(bigNumber) {
  try {
    const hexFromBigNumber = await py`hex(${bigNumber})`;
    return hexFromBigNumber;
  } catch (error) {
    console.log("error");
    console.error(error);
  } finally {
      end();
  }
}

(async () => {
  const hex = await bigNumberToHex(10 ** 10);
  console.log(hex);
})().catch(error => {
  console.log("error");
  console.error(error);
});

Nhập chế độ FullScreenen EXIT Mode FullScreen

Nếu bạn chưa có, vui lòng cài đặt gói Python-Bridge trước với những thứ này và tạo một tệp có đoạn mã bên dưới.

Nếu bạn chơi với nó trong một thời gian với

const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
1, bạn sẽ thấy rằng API chính của nó là
const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
2 và
const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
3.

$python3
>>> hex(1000000000000000000000000)
'0xd3c21bcecceda1000000'
>>> hex(1000000000000000000000000000000)
'0xc9f2c9cd04674edea40000000'
>>> hex(1000000000000000000000000000000000)
'0x314dc6448d9338c15b0a00000000'
>>> hex(1000000000000000000000000)
'0xd3c21bcecceda1000000'
>>> 10 ** 26
100000000000000000000000000
>>> hex(_)
'0x52b7d2dcc80cd2e4000000'

Nhập chế độ FullScreenen EXIT Mode FullScreen

Nếu bạn chưa có, vui lòng cài đặt gói Python-Bridge trước với những thứ này và tạo một tệp có đoạn mã bên dưới.

Nếu bạn chơi với nó trong một thời gian với

const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
1, bạn sẽ thấy rằng API chính của nó là
const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
2 và
const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
3.

Giống như chúng đã được sử dụng ở trên.

Bạn có thể thấy rằng nó sử dụng JavaScript Promise để tiêu thụ giá trị trả về từ Python (ví dụ: X).

Hãy để tôi chỉ cho bạn mã trước. Để sử dụng chúng, bạn phải cài đặt chúng trước và nên ở đúng vị trí để sử dụng thử nghiệm này trong khi VENV được kích hoạt chính xác cho các gói Python.

Cập nhật py.js và

const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
9 của bạn để kiểm tra nó hoạt động.

'use strict';

const python = require('python-bridge');
const py = python(); // It returns value!
const {
  ex, // It does not return value!
  end,
} = py;

const list = [3, 4, 2, 1];

// 

ex`import math`;
ex`import pyautogui`;
ex`import numpy as np`;
ex`import pandas`;

// 

// 1.
function fromPython(pycode = {}) {
  return JSON.stringify(pycode);
}

function toJavaScript(pystr = "") {
  return JSON.parse(pystr)
}

function fromPy(pycode = {}) {
}
  return toJavaScript(fromPython(pycode));

async function pyscript() {
  try {
    let math = await py`math.sqrt(9)`;
    let sort = await py`sorted(${list})`;

    // 2.
    ex`
      value = np.random.randint(0, 7, size = 10)
      returnit = pandas.Series(value).tolist()
   `;
    let returnExample = await py`returnit`; // return value with await and python
    console.log(returnExample);

    // 3.
    const test = (math + sort.reduce((a, c) => a + c, 0))

    // 4.
    let position = await py`pyautogui.position()`
    console.log(position); // object

    // 5.
    ex`pyautogui.screenshot("test.png")`;
    ex`print(str(${test}))`;
    ex`pyautogui.typewrite(str(${test}))`;
    py`pyautogui.typewrite("show it to me")`;
    py`pyautogui.moveTo(${test}, ${math})`;

  } catch (e) {
    console.log(e)
  }
  end();
}

(async () => {
  await pyscript();
})().catch(error => {
  console.log("error");
  console.error(error);
});

Nhập chế độ FullScreenen EXIT Mode FullScreen

Trong khi chơi với gói này, tôi thấy rằng mọi thứ sẽ không hoạt động tốt với sự giúp đỡ từ tác giả gói.

Chúng ta nên đầu tư thời gian để tìm cách sử dụng chúng cho dự án của riêng mình.

1 Những gì bạn chủ yếu cần sẽ chỉ là ____ 20. (Bạn có thể sử dụng toString () trong javascript hoặc str () hoặc các phương thức chuyển đổi loại khác do Python đưa ra bất cứ khi nào bạn gặp loại vấn đề liên quan.) We define some functions to wrap return value from Python inside "" with JSON API or convert it to string type value before they enter JavaScript development environment. What you mainly need will be just

from javascript import require, globalThis

chalk, fs = require("chalk"), require("fs")

print("Hello", chalk.red("world!"), "it's", globalThis.Date().toLocaleString())
fs.writeFileSync("HelloWorld.txt", "hi!")
0.(You can either use toString() in JavaScript or str() or other type conversion methods given by Python whenever you meet the type relevant problem.)

2. Chúng tôi kiểm tra numpy và gấu trúc sẽ thực sự hoạt động hay không. Bạn có thể thấy rằng họ làm việc và thấy rằng bạn chỉ cần sử dụng

from javascript import require, globalThis

chalk, fs = require("chalk"), require("fs")

print("Hello", chalk.red("world!"), "it's", globalThis.Date().toLocaleString())
fs.writeFileSync("HelloWorld.txt", "hi!")
1 khi bạn cần trả lại giá trị từ Python đến JavaScript. Nếu không, bạn sẽ sử dụng
from javascript import require, globalThis

chalk, fs = require("chalk"), require("fs")

print("Hello", chalk.red("world!"), "it's", globalThis.Date().toLocaleString())
fs.writeFileSync("HelloWorld.txt", "hi!")
2 chủ yếu.
We test Numpy and Pandas would really work or not. You can see that they work and find that you need to use
from javascript import require, globalThis

chalk, fs = require("chalk"), require("fs")

print("Hello", chalk.red("world!"), "it's", globalThis.Date().toLocaleString())
fs.writeFileSync("HelloWorld.txt", "hi!")
1 only when you need to return value from Python to JavaScript. Otherwise, you will use
from javascript import require, globalThis

chalk, fs = require("chalk"), require("fs")

print("Hello", chalk.red("world!"), "it's", globalThis.Date().toLocaleString())
fs.writeFileSync("HelloWorld.txt", "hi!")
2 mainly.

3. Bạn có thể thấy rằng bạn có thể sử dụng giá trị từ Python và sử dụng chúng một cách tự do bên trong JavaScript. You can see that you can use value from Python and use them freely inside JavaScript.

4. Chúng tôi sử dụng pyautogui để có được vị trí hiện tại của con trỏ chuột của bạn. Tôi không thể tìm thấy tương đương của nó trong các gói JavaScript. Bạn có thể thấy rằng bạn có thể sử dụng các gói Python thay vì không có mô -đun JavaScript. We use pyautogui to get the current position of your mouse cursor. I couldn't find its equivalent in JavaScript packages. You can find that you can use Python packages instead when there is no JavaScript module also.

  1. Chúng tôi kiểm tra API khác nhau của Pyautogui ở đây. Tôi muốn bạn kiểm tra nó trong máy của riêng bạn. Bạn sẽ thấy rằng chuột, bàn phím và ảnh chụp màn hình của bạn đều hoạt động tốt. Bạn cũng có thể sử dụng
    from javascript import require, globalThis
    
    chalk, fs = require("chalk"), require("fs")
    
    print("Hello", chalk.red("world!"), "it's", globalThis.Date().toLocaleString())
    fs.writeFileSync("HelloWorld.txt", "hi!")
    
    1 trong một số trường hợp khi bạn cũng có thể sử dụng
    from javascript import require, globalThis
    
    chalk, fs = require("chalk"), require("fs")
    
    print("Hello", chalk.red("world!"), "it's", globalThis.Date().toLocaleString())
    fs.writeFileSync("HelloWorld.txt", "hi!")
    
    2.

Các gói và tên được sử dụng ở đây không quan trọng và đến lượt bạn tìm được cách tốt nhất trong số chúng.

4. So sánh gói JavaScript tương đương với gói Python

Mã được sử dụng ở đây chỉ dành cho một nguyên mẫu. Bạn sẽ có thể tìm ra một cách tốt hơn để so sánh tốc độ nếu bạn sẵn sàng đầu tư thời gian của mình.

Vì vậy, bạn có thể đã thấy nó hữu ích hơn tôi với ví dụ trước đây nếu bạn sử dụng Python rất nhiều.Python a lot.

Nhưng bạn có thể tự hỏi rằng nó đáng để sử dụng Python bên trong JavaScript khi bạn xem xét hiệu suất và có mô -đun JavaScript tương tự.Python inside JavaScript when you consider performance and there are similar JavaScript Module.

Vì vậy, chúng tôi sẽ so sánh ngắn gọn Numpy và NumJS vì chúng phục vụ cho cùng một mục đích và có API rất giống nhau.

Bạn có thể lưu đoạn mã bên dưới và kiểm tra nó bằng

const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
1.

const { py, python } = require('pythonia')
async function main() {
  const np = await python('numpy')
  const plot = await python('matplotlib.pyplot')
  ...
  // the rest of the code
}
main().then(() => python.exit()) // If you don't call this, the process won't quit by itself.
0

Nhập chế độ FullScreenen EXIT Mode FullScreen

Trong khi chơi với gói này, tôi thấy rằng mọi thứ sẽ không hoạt động tốt với sự giúp đỡ từ tác giả gói.JavaScript packages instead of Python packages when there are alternatives for them already.

Chúng ta nên đầu tư thời gian để tìm cách sử dụng chúng cho dự án của riêng mình.

1 Những gì bạn chủ yếu cần sẽ chỉ là ____ 20. (Bạn có thể sử dụng toString () trong javascript hoặc str () hoặc các phương thức chuyển đổi loại khác do Python đưa ra bất cứ khi nào bạn gặp loại vấn đề liên quan.)

2. Chúng tôi kiểm tra numpy và gấu trúc sẽ thực sự hoạt động hay không. Bạn có thể thấy rằng họ làm việc và thấy rằng bạn chỉ cần sử dụng from javascript import require, globalThis chalk, fs = require("chalk"), require("fs") print("Hello", chalk.red("world!"), "it's", globalThis.Date().toLocaleString()) fs.writeFileSync("HelloWorld.txt", "hi!") 1 khi bạn cần trả lại giá trị từ Python đến JavaScript. Nếu không, bạn sẽ sử dụng from javascript import require, globalThis chalk, fs = require("chalk"), require("fs") print("Hello", chalk.red("world!"), "it's", globalThis.Date().toLocaleString()) fs.writeFileSync("HelloWorld.txt", "hi!") 2 chủ yếu.

3. Bạn có thể thấy rằng bạn có thể sử dụng giá trị từ Python và sử dụng chúng một cách tự do bên trong JavaScript.

4. Chúng tôi sử dụng pyautogui để có được vị trí hiện tại của con trỏ chuột của bạn. Tôi không thể tìm thấy tương đương của nó trong các gói JavaScript. Bạn có thể thấy rằng bạn có thể sử dụng các gói Python thay vì không có mô -đun JavaScript.

Chúng tôi kiểm tra API khác nhau của Pyautogui ở đây. Tôi muốn bạn kiểm tra nó trong máy của riêng bạn. Bạn sẽ thấy rằng chuột, bàn phím và ảnh chụp màn hình của bạn đều hoạt động tốt. Bạn cũng có thể sử dụng

from javascript import require, globalThis

chalk, fs = require("chalk"), require("fs")

print("Hello", chalk.red("world!"), "it's", globalThis.Date().toLocaleString())
fs.writeFileSync("HelloWorld.txt", "hi!")
1 trong một số trường hợp khi bạn cũng có thể sử dụng
from javascript import require, globalThis

chalk, fs = require("chalk"), require("fs")

print("Hello", chalk.red("world!"), "it's", globalThis.Date().toLocaleString())
fs.writeFileSync("HelloWorld.txt", "hi!")
2.

Thanks.

Tôi có thể tích hợp Python với JS không?

Đó là một cây cầu hai chiều cho phép bạn sử dụng mã JavaScript từ Python và ngược lại.Điều đó có nghĩa là mã Python có thể gọi các cuộc gọi lại của JS và mã JS có thể gọi các cuộc gọi lại Python.. That means that Python code can call JS callbacks, and JS code can call Python callbacks.

Tôi có thể sử dụng JavaScript cho Frontend và Python cho phụ trợ không?

Các khía cạnh trực quan của trang web có thể được người dùng có thể nhìn thấy và trải nghiệm là Frontend.Mặt khác, mọi thứ xảy ra trong nền đều có thể được quy cho phần phụ trợ.Các ngôn ngữ được sử dụng cho mặt trước là HTML, CSS và JavaScript trong khi các ngôn ngữ được sử dụng cho phụ trợ bao gồm Java, Ruby, Python và .NET.Languages used for the front end are HTML, CSS, and JavaScript while those used for the backend include Java, Ruby, Python, and . Net.

Tôi có thể sử dụng Python thay vì JavaScript cho Frontend không?

Có, bạn có thể sử dụng Python như một ngôn ngữ phụ trợ thay vì JS.Nhưng JS cũng được sử dụng ở phía trước và bạn không thể thay thế nó ở đó.you can't replace it there.