最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python調(diào)用JS代碼的方法大全

 更新時間:2025年05月30日 10:34:15   作者:失敗又激情的man  
這篇文章主要為大家詳細介紹了Python調(diào)用JavaScript代碼的三種常用代碼,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

一.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/

基本使用方法

(注:導(dǎo)入不需要py,下載要py)

import execjs  # 導(dǎo)入
# 生成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ù)調(diào)用包含在字符串內(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調(diào)用異步JS

在 Python 中,subprocess 模塊用于創(chuàng)建和管理子進程??梢酝ㄟ^端口調(diào)用JS代碼

本質(zhì)是通過端口調(diào)用js代碼注意路徑,python代碼如下:

import subprocess
# 使用 subprocess 模塊執(zhí)行 Node.js 命令
result = subprocess.run(["node", "1.js", "daochu",  "7", "5"], capture_output=True, text=True)
# 輸出執(zhí)行結(jié)果
print(f"Node.js 執(zhí)行結(jié)果: {result.stdout.strip()}")

JS代碼(注意是輸出console.log,而不是返回return)

function getAsyncData() {
    return new Promise(function (resolve, reject) {
        resolve(123)
    });
}
getAsyncData().then(
    function (data){
        console.log(data)
    }
)

輸出結(jié)果

三.express異步接口調(diào)用

簡單來說,Express 是基于 Node.js 平臺,快速、開放、極簡的 Web 開發(fā)框架。

下載:

npm install express -S

基本用法

// 1.導(dǎo)入 express
const express = require('express');
 
// 2.創(chuàng)建 web 服務(wù)器
const app = express();
 
// 3.get請求 req是請求對象  res響應(yīng)對象
app.get('/user', function(req, res){
    // 調(diào)用express提供的res.send()方法,向客戶端響應(yīng)一個JSON對象
    res.send('hello world')
})
// 4.啟動 web 服務(wù)器
app.listen(8080, function(){
    console.log('express server running at http://127.0.0.1:8080/user');
})

響應(yīng)返回的結(jié)果

所以簡單來說如果是異步j(luò)s代碼

 
// 1.導(dǎo)入 express
const express = require('express');
// 2.創(chuàng)建 web 服務(wù)器
const app = express();
function getAsyncData(){
    return new Promise(function (resolve, reject) {
            resolve('hello world');
    });
}
// 3.get請求 req是請求對象  res響應(yīng)對象
app.get('/user', function(req, res){
    // 調(diào)用express提供的res.send()方法,向客戶端響應(yīng)一個JSON對象
    getAsyncData().then(function(data){
    res.send(data);
});
})
// 4.啟動 web 服務(wù)器
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)

結(jié)果如下,也是順利調(diào)用了

到此這篇關(guān)于Python調(diào)用JS代碼的方法大全的文章就介紹到這了,更多相關(guān)Python調(diào)用JS代碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 簡單的調(diào)用有道翻譯

    python 簡單的調(diào)用有道翻譯

    這篇文章主要介紹了python 如何簡單的調(diào)用有道翻譯,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11
  • 詳解python數(shù)據(jù)結(jié)構(gòu)之棧stack

    詳解python數(shù)據(jù)結(jié)構(gòu)之棧stack

    這篇文章主要介紹了詳解python數(shù)據(jù)結(jié)構(gòu)之棧stack,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Python?Bytes壓縮新手速成

    Python?Bytes壓縮新手速成

    掌握Python?Bytes壓縮的秘訣,讓你的數(shù)據(jù)輕裝上陣!本指南將帶你一探Bytes壓縮的奧秘,告別臃腫的數(shù)據(jù),快來發(fā)現(xiàn)如何讓你的代碼和應(yīng)用在性能高速公路上馳騁吧!
    2023-12-12
  • python實現(xiàn)簡單的單變量線性回歸方法

    python實現(xiàn)簡單的單變量線性回歸方法

    今天小編就為大家分享一篇python實現(xiàn)簡單的單變量線性回歸方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python實現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之雙端隊列詳解

    Python實現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之雙端隊列詳解

    這篇文章主要介紹了Python實現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之雙端隊列,詳細講述了雙端隊列的概念、功能、定義及Python實現(xiàn)與使用雙端隊列的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • Python+PyQt5開發(fā)一個截圖工具

    Python+PyQt5開發(fā)一個截圖工具

    這篇文章主要為大家詳細介紹了如何使用Python和PyQt5開發(fā)一個截圖工具,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • 詳解Python進階之切片的誤區(qū)與高級用法

    詳解Python進階之切片的誤區(qū)與高級用法

    切片(slice)就是一種截取索引片段的技術(shù),借助切片技術(shù),我們可以十分靈活地處理序列類型的對象。這篇文章主要介紹了Python進階之切片的誤區(qū)與高級用法,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • 詳解Python中openpyxl模塊基本用法

    詳解Python中openpyxl模塊基本用法

    這篇文章主要介紹了Python中openpyxl模塊基本用法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Python Anaconda創(chuàng)建虛擬環(huán)境及Pycharm使用虛擬環(huán)境詳解

    Python Anaconda創(chuàng)建虛擬環(huán)境及Pycharm使用虛擬環(huán)境詳解

    文章介紹了如何使用Anaconda創(chuàng)建和管理Python虛擬環(huán)境,并如何在Pycharm中使用這些環(huán)境,這包括創(chuàng)建、激活、退出、刪除、克隆和重命名虛擬環(huán)境的命令,以及如何查看和管理已安裝的Python包,此外,還涉及了如何在Pycharm中配置和使用這些虛擬環(huán)境
    2025-10-10
  • pytorch訓(xùn)練時的顯存占用遞增的問題解決

    pytorch訓(xùn)練時的顯存占用遞增的問題解決

    本文主要介紹了pytorch訓(xùn)練時的顯存占用遞增的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01

最新評論

马山县| 延吉市| 安远县| 田阳县| 方山县| 和政县| 岳普湖县| 夹江县| 黄浦区| 林州市| 高尔夫| 吴江市| 辽中县| 尚志市| 林芝县| 牡丹江市| 温宿县| 中阳县| 绿春县| 长丰县| 关岭| 延川县| 丰宁| 冀州市| 玛多县| 赤水市| 宁陵县| 塘沽区| 乌拉特后旗| 广宗县| 攀枝花市| 玉林市| 基隆市| 长垣县| 尉氏县| 密云县| 沙湾县| 镇坪县| 楚雄市| 卓资县| 营口市|