谁才是最好的编程语言?Java、PHP、Python、Go、JavaScript….
每个人都有本人的答案,然而,当范畴限定在Web开发,没有什么能胜过JavaScript。
但有时咱们必须做一些要求更高的工作,例如,剖析大量的数据。
在这种状况下,Python可能是一个更好的抉择。
但这只是咱们网站的一个性能,天然不会因为这一点需要而用Python开发整个工程。
明天,就来给大家介绍一种可能将JavaScript和Python完满联合在一起,高效解决工程问题的办法。
JavaScript+Python
这对于很多开发同学来说,相对算得上一个很吸引人的音讯。
咱们能够在Node.JS中应用子过程,在须要时运行一个Python脚本。
const spawn = require('child_process').spawnapp.get("process_data", (req, res) => { spawn('python3', ['script.py'])})
再来写一个Python脚本:
# script.pydoSometing()
除了这种形式,咱们也能够将数据传递给咱们的Python脚本。
const spawn = require('child_process').spawnapp.get("process_data", (req, res) => { const msg = "Hello" spawn('python3', ['script.py', msg])})
在Python中,为了可能读取数据,你必须导入sys模块。
import sys, jsondef main(): msg = sys.argv[1] doSometing(msg)if __name__ == '__main__': main()
当初,咱们不须要在生成Python过程时传递数据,而是在工作工作流中发送数据。
const spawn = require('child_process').spawn,const py = spawn('python3', ['script.py'])const data = { msg: "Hello"}py.stdin.write(JSON.stringify(data)) //we have to send data as a string, so we are using JSON.stringifypy.stdin.end()
批改一下Python脚本:
import sys, jsondef main(): lines = sys.stdin.readlines() data = json.loads(lines) doSometing(data['msg'])if __name__ == '__main__': main()
最初,咱们能够从Python脚本中向nodejs发送响应。
const spawn = require('child_process').spawnconst py = spawn('python3', ['cscript.py'])py.stdout.on('data', function(res){ let data = JSON.parse(res.toString()) console.log(data)})
Python代码为:
import sys# You will have your own implementation of get data. In this case lets assume it returns a dict/jsonres = getData()print(json.dumps(data))sys.stdout.flush()
这样,咱们就能够在Web开发过程中,可能同时兼顾JavaScript、Python的劣势,最大化施展不同编程语言的价值。无需借助数据库,或者开发繁琐的api构造就能够有机的把JavaScript与Python联合到一起,晋升开发效率。
以上就是本次分享的所有内容,如果你感觉文章还不错,欢送关注公众号:Python编程学习圈,每日干货分享,发送“J”还可支付大量学习材料,内容笼罩Python电子书、教程、数据库编程、Django,爬虫,云计算等等。或是返回编程学习网,理解更多编程技术常识。