python.py
from pymongo import MongoClient
from flask import Flask
app = Flask(__name__)
host = "10.0.0.10"
port = 8085
@app.route('/name/<string:name>',methods=['GET','POST'])
def GetNoteText(name):
print name
return "Data Received"
@app.route('/', methods=['POST'])
def abc():
print "Hii"
return ('Welcome')
users=[]
@app.route('/getNames')
def getName():
client = MongoClient('mongodb://localhost:27017/')
db = client.bridgeUserInformationTable
cursor = db.bridgeUsersInfo.find()
for document in cursor:
#print "Name : ",document['name']
users.append(document['name'])
print document['name']
#print (users)
return "<html><body><h1>"+str(users)+"</h1></body></html>"
if __name__ == '__main__':
app.run(
host=host, port=port
)
&#13;
node.j
var PythonShell = require('python-shell');
PythonShell.run('pass.py', function (err) {
if (err) throw err;
console.log('finished');
});
&#13;
我试过可以在运行节点js脚本从android设备获取输入后调用节点js中的python脚本吗?我有点困惑它应该如何解决?以及两种语言如何相互通信,如python到节点js?
答案 0 :(得分:0)
ZERORPC是一个非常漂亮的基于ZeroMQ的库。这可能是从Node生成调用python代码的最简单方法。
对于一个非常简单的方法和非健壮的方法,您可以使用tmp文件从Node编写python命令。在Python内部运行事件循环,读取tmp文件以获取任何更改并在其中执行命令。
答案 1 :(得分:0)
是的,我们可以从node js调用python文件,您可以为此目的使用cmd-node包。
const cmd=require('node-cmd');
const processRef=cmd.run('python -i');
let data_line = '';
//listen to the python terminal output
processRef.stdout.on(
'data',
function(data) {
data_line += data;
if (data_line[data_line.length-1] == '\n') {
console.log(data_line);
}
}
);
const pythonTerminalInput=`primes = [2, 3, 5, 7]
for prime in primes:
print(prime)
`;
//show what we are doing
console.log(`>>>${pythonTerminalInput}`);
//send it to the open python terminal
processRef.stdin.write(pythonTerminalInput);