Python
和 JavaScript
是两种非常流行的编程语言,它们各自在不同的领域有着广泛的应用。 Python
以其强大的数据分析和机器学习库而闻名,而 JavaScript
则是 Web
开发中不可或缺的前端脚本语言。在某些情况下,Python
开发者可能想要写一些 JavaScript
代码在页面上更好的展示自己的训练成果,而有些时候前端开发者可能需要写一些 Python
代码实现更为智能的操作,而本文的目的就是展示在这两种语言相互调用的过程中如何实现数据的传递。
1. Python 调用 JavaScript
在 Python
中调用 JavaScript
代码通常有以下几种方法:
- 使用
pyjsparser
库:pyjsparser
是一个Python
库,它可以解析并执行JavaScript
代码。通过这个库,我们可以直接在Python
脚本中运行JavaScript
代码。
python
复制代码
from pyjsparser import parse
execjs = parse("const result = 'Hello, JavaScript!';")
print(execjs)
result = eval(str(execjs))
print(result)
- 使用
PyV8
库:PyV8
是另一个Python
库,它提供了一个完整的JavaScript
引擎。通过PyV8
,我们可以在Python
中执行JavaScript
代码,并获取执行结果。
python
复制代码
import pyv8
context = pyv8.JSContext()
result = context.execute("'Hello, JavaScript!'")
print(result) # 输出: Hello, JavaScript!
- 通过命令行调用Node.js:
Node.js
是一个基于Chrome V8
引擎的JavaScript
运行环境。我们可以通过Python
的subprocess
模块来调用Node.js
,并执行JavaScript
文件。
python
复制代码
import subprocess
result = subprocess.check_output(["node", "script.js"])
print(result.decode()) # 输出: Hello, JavaScript!
2. JavaScript调用Python
在 JavaScript
中调用 Python
代码通常需要借助一些工具或者服务:
- 使用
node-python
库:node-python
是一个Node.js
库,它允许你在Node.js
环境中执行Python
代码。通过这个库,我们可以在JavaScript
中直接调用Python
函数。
javascript
复制代码
import {PythonShell} from 'python-shell';
PythonShell.runString('x=1+1;print(x)', null).then(messages=>{
console.log('finished');
});
或者,你可以直接执行某个 python
文件:
js
复制代码
import {PythonShell} from 'python-shell';
let options = {
mode: 'text',
pythonPath: 'path/to/python',
pythonOptions: ['-u'], // get print results in real-time
scriptPath: 'path/to/my/scripts',
args: ['value1', 'value2', 'value3']
};
PythonShell.run('my_script.py', options).then(messages=>{
// results is an array consisting of messages collected during execution
console.log('results: %j', results);
});
交换数据举例:
js
复制代码
import {PythonShell} from 'python-shell';
let pyshell = new PythonShell('my_script.py');
// sends a message to the Python script via stdin
pyshell.send('hello');
pyshell.on('message', function (message) {
// received a message sent from the Python script (a simple "print" statement)
console.log(message);
});
// end the input stream and allow the process to exit
pyshell.end(function (err,code,signal) {
if (err) throw err;
console.log('The exit code was: ' + code);
console.log('The exit signal was: ' + signal);
console.log('finished');
});
- 通过WebSockets: 我们可以创建一个
WebSocket
服务器,用Python
编写服务器端代码,然后在JavaScript
中通过WebSocket
协议与服务器通信,从而实现调用Python
代码的目的。
javascript
复制代码
// JavaScript客户端
const socket = new WebSocket('ws://localhost:8000');
socket.onopen = function() {
socket.send('Hello, Python!');
};
socket.onmessage = function(e) {
console.log(e.data); // 输出: Hello, Python!
};
// Python服务器端
from websocket import create_connection
ws = create_connection("ws://localhost:8000")
ws.send("Hello, Python!")
result = ws.recv()
print(result) # 输出: Hello, Python!
ws.close()
- 通过HTTP请求: 我们可以创建一个
Python Web
服务,将Python
代码作为后端逻辑运行。然后在JavaScript
中通过HTTP
请求调用这个服务,间接地调用Python
代码。
javascript
复制代码
// JavaScript客户端
fetch('/python_service', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ message: 'Hello, Python!' })
})
.then(response => response.json())
.then(data => {
console.log(data); // 输出: Hello, Python!
});
// Python服务器端 (使用Flask框架)
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/python_service', methods=['POST'])
def python_service():
message = request.json()['message']
print(message) # 输出: Hello, Python!
return jsonify(result='Hello, Python!')
app.run()
3. 总结
Python
和 JavaScript
虽然在不同的领域有着各自的优势,但通过一些工具和方法,它们可以相互调用,实现资源共享和功能互补。这种跨语言的互操作性为开发者提供了更多的可能性,使得他们可以更加灵活地构建应用程序和服务。在选择使用哪种方法时,需要考虑实际的需求、环境以及性能等因素,选择最适合当前项目的方案。
这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!
优快云大礼包:全网最全《全套Python学习资料》免费分享🎁
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
1️⃣零基础入门
① 学习路线
对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
② 路线对应学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
③练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
因篇幅有限,仅展示部分资料
2️⃣国内外Python书籍、文档
① 文档和书籍资料
3️⃣Python工具包+项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
②Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
③Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
4️⃣Python面试题
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
5️⃣Python兼职渠道
而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
上述所有资料 ⚡️ ,朋友们如果有需要 📦《全套Python学习资料》的,可以扫描下方二维码免费领取 🆓
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓