Python调用JS代码的方法大全

 更新时间:2025年05月30日 10:34:15   作者:失败又激情的man  
这篇文章主要为大家详细介绍了Python调用JavaScript代码的三种常用代码,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

一.pyexecjs的使用

PyExecJS 是一个 Python 库,用于在 Python 环境中执行 JavaScript 代码。它实际上是对 ExecJS 库的 Python 封装,ExecJS 本身是一个通用的 JavaScript 运行环境的抽象层。使用 PyExecJS,你可以在 Python 中执行 JavaScript 代码,而无需启动一个完整的 JavaScript 解释器。它的目标是提供一种简便的方式,使得在 Python 中嵌入 JavaScript 代码成为可能,特别是对于需要JavaScript 交互的项目而言。

安装方式:

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

基本使用方法

(注:导入不需要py,下载要py)

import execjs  # 导入
# 生成JavaScript运行环境,环境名可以指定
node = execjs.get()  # 安装nodejs后,会得到运行环境名为: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代码
 
# 两种方式执行js函数
data1 = ctx.eval('get_data({"aa": "123"})')  # eval方法中,整个函数调用包含在字符串内
print(data1)
data2 = ctx.call('get_data', ['123'])  # call方法中,第一个参数是函数名(str),后面接参数
print(data2)

js代码

function get_data(aa){
 
 
    return aa
}

输出

以上方法只针对非异步的js代码

二.subprocess调用异步JS

在 Python 中,subprocess 模块用于创建和管理子进程。可以通过端口调用JS代码

本质是通过端口调用js代码注意路径,python代码如下:

import subprocess
# 使用 subprocess 模块执行 Node.js 命令
result = subprocess.run(["node", "1.js", "daochu",  "7", "5"], capture_output=True, text=True)
# 输出执行结果
print(f"Node.js 执行结果: {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 开发框架。

下载:

npm install express -S

基本用法

// 1.导入 express
const express = require('express');
 
// 2.创建 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.创建 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代码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python+tkinter使用40行代码实现计算器功能

    Python+tkinter使用40行代码实现计算器功能

    这篇文章主要为大家详细介绍了Python+tkinter使用40行代码实现计算器功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Django MEDIA的配置及用法详解

    Django MEDIA的配置及用法详解

    这篇文章主要介绍了Django MEDIA的配置及用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python 获取图片分辨率的方法

    python 获取图片分辨率的方法

    今天小编就为大家分享一篇python 获取图片分辨率的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 天翼开放平台免费短信验证码接口使用实例

    天翼开放平台免费短信验证码接口使用实例

    天翼开放平台提供了一个免费的短信验证码API,下面看看使用方法吧,我们用python开发接口
    2013-12-12
  • Python使用random.shuffle()打乱列表顺序的方法

    Python使用random.shuffle()打乱列表顺序的方法

    今天小编就为大家分享一篇Python使用random.shuffle()打乱列表顺序的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • opencv-python基本图像处理详解

    opencv-python基本图像处理详解

    这篇文章主要介绍了Python Opencv图像处理基本操作代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-08-08
  • Python导出并分析聊天记录详解流程

    Python导出并分析聊天记录详解流程

    这篇文章主要介绍了Python将QQ聊天记录生成词云的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • Python实现密钥密码(加解密)实例详解

    Python实现密钥密码(加解密)实例详解

    这篇文章主要介绍了Python实现密钥密码(加解密),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Python3利用print输出带颜色的彩色字体示例代码

    Python3利用print输出带颜色的彩色字体示例代码

    用Python写命令行程序的时候,单一的输出颜色太单调了,所以下面这篇文章主要给大家介绍了关于Python3利用print输出带颜色的彩色字体的相关资料,需要的朋友可以参考下
    2019-04-04
  • python函数超时自动退出的实操方法

    python函数超时自动退出的实操方法

    在本篇文章里小编给大家整理的是一篇关于python函数超时自动退出的实操方法,有需要的朋友们可以学习下。
    2020-12-12

最新评论