哪种编程语言最好?Java、PHP、Python、Go、JavaScript……每个都有自己的答案,但在Web开发方面,没有什么比JavaScript更好的了。但有时我们必须完成要求更高的任务,例如分析大量数据。在这种情况下,Python可能是更好的选择。但这只是我们网站的一个功能,自然不会因为这个需求而整个项目都用Python开发。今天给大家介绍一种将JavaScript和Python完美结合高效解决工程问题的方法。JavaScript+Python这对于很多开发同学来说绝对是一个非常有吸引力的消息。我们可以在Node.JS中使用子进程在需要时运行Python脚本。constspawn=require('child_process').spawnapp.get("process_data",(req,res)=>{spawn('python3',['script.py'])})并编写一个Python脚本:#script.pydoSometing()除了这种方式,我们还可以将数据传递给我们的Python脚本。constspawn=require('child_process').spawnapp.get("process_data",(req,res)=>{constmsg="Hello"spawn('python3',['script.py',msg])})在Python中,为了能够读取数据,您必须导入sys模块。importsys,jsondefmain():msg=sys.argv[1]doSometing(msg)if__name__=='__main__':main()现在,我们不需要在生成Python进程时传递数据,而是在任务工作流中发送数据。constspawn=require('child_process').spawn,constpy=spawn('python3',['script.py'])constdata={msg:"Hello"}py.stdin.write(JSON.stringify(数据))//我们必须将数据作为字符串发送,所以我们使用JSON.stringifypy.stdin.end()修改Python脚本:importsys,jsondefmain():lines=sys.stdin.readlines()data=json.loads(lines)doSometing(data['msg'])if__name__=='__main__':main()最后,我们可以将响应从python脚本发送到nodejs。constspawn=require('child_process').spawnconstpy=spawn('python3',['cscript.py'])py.stdout.on('data',function(res){让数据=JSON.parse(res.toString())console.log(data)})Python代码是:importsys#你将有自己的获取数据的实现。在这种情况下,假设它返回一个dict/jsonres=getData()print(json.dumps(data))sys.stdout.flush()这样,我们可以同时兼顾JavaScript和Python的优势在网页开发过程中,将不同编程语言的价值最大化。无需使用数据库,无需开发繁琐的API结构,即可将JavaScript与Python有机结合,提高开发效率。以上就是本次分享的全部内容。觉得文章还不错的话,请关注公众号:Python编程学习圈,每日干货分享,发送“J”还能收到海量学习资料,涵盖Python电子书和教程,数据库编程、Django、爬虫、云计算等。或者去编程学习网了解更多编程技术知识。
