欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一.pyexecjs的使用

PyExecJS 是一個(gè) Python 庫,用于在 Python 環(huán)境中執(zhí)行 JavaScript 代碼。它實(shí)際上是對(duì) ExecJS 庫的 Python 封裝,ExecJS 本身是一個(gè)通用的 JavaScript 運(yùn)行環(huán)境的抽象層。使用 PyExecJS,你可以在 Python 中執(zhí)行 JavaScript 代碼,而無需啟動(dòng)一個(gè)完整的 JavaScript 解釋器。它的目標(biāo)是提供一種簡(jiǎn)便的方式,使得在 Python 中嵌入 JavaScript 代碼成為可能,特別是對(duì)于需要JavaScript 交互的項(xiàng)目而言。

安裝方式:

pip install PyExecJS  -i  https://pypi.tuna.tsinghua.edu.cn/simple/

基本使用方法

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

import execjs  # 導(dǎo)入
# 生成JavaScript運(yùn)行環(huán)境,環(huán)境名可以指定
node = execjs.get()  # 安裝nodejs后,會(huì)得到運(yùn)行環(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方法中,整個(gè)函數(shù)調(diào)用包含在字符串內(nèi)
print(data1)
data2 = ctx.call('get_data', ['123'])  # call方法中,第一個(gè)參數(shù)是函數(shù)名(str),后面接參數(shù)
print(data2)

js代碼

function get_data(aa){
 
 
    return aa
}

輸出

以上方法只針對(duì)非異步的js代碼

二.subprocess調(diào)用異步JS

在 Python 中,subprocess 模塊用于創(chuàng)建和管理子進(jìn)程??梢酝ㄟ^端口調(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)用

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

下載:

npm install express -S

基本用法

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

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

所以簡(jiǎn)單來說如果是異步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請(qǐng)求 req是請(qǐng)求對(duì)象  res響應(yīng)對(duì)象
app.get('/user', function(req, res){
    // 調(diào)用express提供的res.send()方法,向客戶端響應(yīng)一個(gè)JSON對(duì)象
    getAsyncData().then(function(data){
    res.send(data);
});
})
// 4.啟動(dòng) 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');
})

然后在本地請(qǐng)求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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python+tkinter使用40行代碼實(shí)現(xiàn)計(jì)算器功能

    Python+tkinter使用40行代碼實(shí)現(xiàn)計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了Python+tkinter使用40行代碼實(shí)現(xiàn)計(jì)算器功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Django MEDIA的配置及用法詳解

    Django MEDIA的配置及用法詳解

    這篇文章主要介紹了Django MEDIA的配置及用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python 獲取圖片分辨率的方法

    python 獲取圖片分辨率的方法

    今天小編就為大家分享一篇python 獲取圖片分辨率的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 天翼開放平臺(tái)免費(fèi)短信驗(yàn)證碼接口使用實(shí)例

    天翼開放平臺(tái)免費(fèi)短信驗(yàn)證碼接口使用實(shí)例

    天翼開放平臺(tái)提供了一個(gè)免費(fèi)的短信驗(yàn)證碼API,下面看看使用方法吧,我們用python開發(fā)接口
    2013-12-12
  • Python使用random.shuffle()打亂列表順序的方法

    Python使用random.shuffle()打亂列表順序的方法

    今天小編就為大家分享一篇Python使用random.shuffle()打亂列表順序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • opencv-python基本圖像處理詳解

    opencv-python基本圖像處理詳解

    這篇文章主要介紹了Python Opencv圖像處理基本操作代碼詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Python導(dǎo)出并分析聊天記錄詳解流程

    Python導(dǎo)出并分析聊天記錄詳解流程

    這篇文章主要介紹了Python將QQ聊天記錄生成詞云的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • Python實(shí)現(xiàn)密鑰密碼(加解密)實(shí)例詳解

    Python實(shí)現(xiàn)密鑰密碼(加解密)實(shí)例詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)密鑰密碼(加解密),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python3利用print輸出帶顏色的彩色字體示例代碼

    Python3利用print輸出帶顏色的彩色字體示例代碼

    用Python寫命令行程序的時(shí)候,單一的輸出顏色太單調(diào)了,所以下面這篇文章主要給大家介紹了關(guān)于Python3利用print輸出帶顏色的彩色字體的相關(guān)資料,需要的朋友可以參考下
    2019-04-04
  • python函數(shù)超時(shí)自動(dòng)退出的實(shí)操方法

    python函數(shù)超時(shí)自動(dòng)退出的實(shí)操方法

    在本篇文章里小編給大家整理的是一篇關(guān)于python函數(shù)超時(shí)自動(dòng)退出的實(shí)操方法,有需要的朋友們可以學(xué)習(xí)下。
    2020-12-12

最新評(píng)論