如何从PHP或Javascript调用python程序(具有命令行参数)?

时间:2014-12-26 03:27:23

标签: javascript php python

我的Python程序是,

from xbee import ZigBee
import serial
import sys

sPort = serial.Serial("/dev/ttyAMA0", 9600)
xbee = ZigBee(sPort)

targStr = sys.argv[1]
data = str(targStr)
print (data)
destAdd = "\x00\x13\xa2\x00\x40\xa9\xcc\xad"
xbee.send("tx",dest_addr_long=destAdd,dest_addr="\xff\fe",data=data)
print ("Sent!")

当我在linux shell上执行这个python程序时,它的效果非常好!如何从HTML页面(使用Javascript,AJAX或PHP)在某些事件上执行此程序?

1 个答案:

答案 0 :(得分:1)

您需要将此代码嵌入到某个Python Web服务器中 - 例如Flask

请参阅示例bellow - xbee_test.py(非常原始,不要在生产环境中使用它):

from flask import Flask
app = Flask(__name__)

from xbee import ZigBee
import serial

sPort = serial.Serial("/dev/ttyAMA0", 9600)
xbee = ZigBee(sPort)

@app.route("/<data>")
def index(data):
    destAdd = "\x00\x13\xa2\x00\x40\xa9\xcc\xad"
    xbee.send("tx",dest_addr_long=destAdd,dest_addr="\xff\fe",data=data)
    return "Sent!"

if __name__ == "__main__":
    app.run()

现在,当你在Python中运行它并点击http // localhost:5000 / test_data时,你会得到你的代码。

将其嵌入到HTML页面中,例如从这一点开始,AJAX调用就不复杂了。

以下是如何获取Flask安装并运行:

$ pip install Flask
$ python xbee_test.py
 * Running on http://localhost:5000/