从按钮推送运行Python脚本

时间:2017-07-05 15:55:47

标签: php python ajax

我正在为RFID阅读器制作一个网络界面并试图使其成为按钮,然后等待用户扫描卡并检索卡的UID。我正在考虑使用ajax来调用调用python脚本的php脚本,但它不会等待扫描卡。继承人ajax:

<script type = "text/javascript">
function scancard () {
    $.ajax( { type : 'GET',
                        data : { },
                        url    : 'scancard.php',
                        success: function (data) {
                            var card_id = document.getElementById('card_id');
                            card_id.value = data;
                        },
                        error: function (xhr) {
                            alert( "error");
                        }
                    });    
}
</script>

按钮html:

<button onclick="scancard()">Scan Card</button>

使用简单的回显cmd进行测试,它会填充字段,但随后刷新页面,字段再次为空白。

我遇到的另一个问题是当我为php脚本调用python代码时输入:

<?php
  exec('sudo python scancard.py', $output, $return);
  echo $return;
?>

在执行echo命令之前,它不会等待python代码完成。 python代码中有一个while循环,它等待读取RFID卡然后返回uid代码。

# Lots of configuration and setup stuff above this...it works when run via command line
# Main loop to detect cards and read a block.
while True:
    uid = pn532.read_passive_target()
    if uid is None:
        continue
    else:
        if not pn532.mifare_classic_authenticate_block(uid, 4, PN532.MIFARE_CMD_AUTH_B,
                                                   [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]):
            continue
        uid = '0x{0}'.format(binascii.hexlify(uid))
        sys.exit(uid)

我可能会以迂回的方式解决这个问题,所以如果有更好的方法,请告诉我

0 个答案:

没有答案