Python調用JS代碼的方法大全
一.pyexecjs的使用
PyExecJS 是一個 Python 庫,用于在 Python 環(huán)境中執(zhí)行 JavaScript 代碼。它實際上是對 ExecJS 庫的 Python 封裝,ExecJS 本身是一個通用的 JavaScript 運行環(huán)境的抽象層。使用 PyExecJS,你可以在 Python 中執(zhí)行 JavaScript 代碼,而無需啟動一個完整的 JavaScript 解釋器。它的目標是提供一種簡便的方式,使得在 Python 中嵌入 JavaScript 代碼成為可能,特別是對于需要JavaScript 交互的項目而言。
安裝方式:
pip install PyExecJS -i https://pypi.tuna.tsinghua.edu.cn/simple/
基本使用方法
(注:導入不需要py,下載要py)
import execjs # 導入
# 生成JavaScript運行環(huán)境,環(huán)境名可以指定
node = execjs.get() # 安裝nodejs后,會得到運行環(huán)境名為:Node.js (V8)
with open('1.js', encoding='utf-8') as f:
js_code = f.read()
print(js_code)
# 編譯js代碼
ctx = node.compile(js_code) # compile方法去加載js代碼
# 兩種方式執(zhí)行js函數(shù)
data1 = ctx.eval('get_data({"aa": "123"})') # eval方法中,整個函數(shù)調用包含在字符串內(nèi)
print(data1)
data2 = ctx.call('get_data', ['123']) # call方法中,第一個參數(shù)是函數(shù)名(str),后面接參數(shù)
print(data2)js代碼
function get_data(aa){
return aa
}輸出

以上方法只針對非異步的js代碼
二.subprocess調用異步JS
在 Python 中,subprocess 模塊用于創(chuàng)建和管理子進程。可以通過端口調用JS代碼
本質是通過端口調用js代碼注意路徑,python代碼如下:
import subprocess
# 使用 subprocess 模塊執(zhí)行 Node.js 命令
result = subprocess.run(["node", "1.js", "daochu", "7", "5"], capture_output=True, text=True)
# 輸出執(zhí)行結果
print(f"Node.js 執(zhí)行結果: {result.stdout.strip()}")JS代碼(注意是輸出console.log,而不是返回return)
function getAsyncData() {
return new Promise(function (resolve, reject) {
resolve(123)
});
}
getAsyncData().then(
function (data){
console.log(data)
}
)輸出結果

三.express異步接口調用
簡單來說,Express 是基于 Node.js 平臺,快速、開放、極簡的 Web 開發(fā)框架。
下載:
npm install express -S
基本用法
// 1.導入 express
const express = require('express');
// 2.創(chuàng)建 web 服務器
const app = express();
// 3.get請求 req是請求對象 res響應對象
app.get('/user', function(req, res){
// 調用express提供的res.send()方法,向客戶端響應一個JSON對象
res.send('hello world')
})
// 4.啟動 web 服務器
app.listen(8080, function(){
console.log('express server running at http://127.0.0.1:8080/user');
})響應返回的結果

所以簡單來說如果是異步js代碼
// 1.導入 express
const express = require('express');
// 2.創(chuàng)建 web 服務器
const app = express();
function getAsyncData(){
return new Promise(function (resolve, reject) {
resolve('hello world');
});
}
// 3.get請求 req是請求對象 res響應對象
app.get('/user', function(req, res){
// 調用express提供的res.send()方法,向客戶端響應一個JSON對象
getAsyncData().then(function(data){
res.send(data);
});
})
// 4.啟動 web 服務器
app.listen(8080, function(){
console.log(" http://127.0.0.1:8080/user/")
console.log('express server running at http://127.0.0.1:8080');
})然后在本地請求http://127.0.0.1:8080/user/
import requests url = "http://127.0.0.1:8080/user/" response = requests.get(url) print(response.text) print(response)
結果如下,也是順利調用了

到此這篇關于Python調用JS代碼的方法大全的文章就介紹到這了,更多相關Python調用JS代碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python+tkinter使用40行代碼實現(xiàn)計算器功能
這篇文章主要為大家詳細介紹了Python+tkinter使用40行代碼實現(xiàn)計算器功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01
Python使用random.shuffle()打亂列表順序的方法
今天小編就為大家分享一篇Python使用random.shuffle()打亂列表順序的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11

