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

How do I call python program (which has command line arguments) from PHP or Javascript?

本文关键字:命令行 参数 程序 python PHP 调用 Javascript      更新时间:2023-09-26

我的 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)?

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

请参阅以下示例 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/