Python调用JS代码的方法大全

作者:

文章目录
  • 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代码
  • 在 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 是基于 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调用JavaScript代码的几种方法小结 详解如何在Python中有效调用JavaScript 在Python中执行和调用JavaScript的多种方法小结 Python中执行调用JS的多种实现方法总结 python 调用js的四种方式
  • 目录
    • 一.pyexecjs的使用
    • 二.subprocess调用异步JS
    • 三.express异步接口调用

    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代码

    在 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 是基于 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调用JavaScript代码的几种方法小结
    • 详解如何在Python中有效调用JavaScript
    • 在Python中执行和调用JavaScript的多种方法小结
    • Python中执行调用JS的多种实现方法总结
    • python 调用js的四种方式

    站内搜索