python3 flask pyserial脚本仅适用于

2024-05-09 08:38:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我想编写一个脚本来打开现金抽屉,使用串行设备(带USB),而不是每次打印机打印时都打开它(例如,在信用卡支付时,不需要打开现金抽屉)。在

它应该通过Ajax调用一个基于Flask的网站(整个网站充当Ajax接收器来执行python脚本)。在

Flask网站正在运行,其他脚本运行正常,这就是为什么我在这里只显示主脚本有趣的部分:

...
@app.route("/cashdrawer")
def cashdrawer():
        import cash_drawer_open
        return "open ?"   # website output
...

现金抽屉开启器cash_drawer_open.py看起来像这样

^{pr2}$

问题是,在启动Flask服务器并第一次调用脚本之后,抽屉只打开一次。同一网站的每一次呼叫都不会在终端中返回open ?,抽屉保持平静。唯一的问题是终端响应

^{3}$

一次又一次。在

我还尝试用诸如改变时间戳之类的参数来调用它

http://myserver/cashdrawer?t=12765435664543

但是没有成功。在

有什么办法让我每次拨打地址时都能和USB设备通话吗?谢谢


Tags: 脚本终端flask网站打印机ajaxcashopen
1条回答
网友
1楼 · 发布于 2024-05-09 08:38:13

你的错误是假设导入是在执行代码。这只是第一次,之后import语句只会给您一个缓存的模块实例。在

因此,用三个简单的步骤重构代码:

  1. 将实际逻辑(除了导入之外的任何内容)放入cash_drawer_open 进入函数
  2. 将web应用程序中的cash_drawer_open的导入放在它所属模块的顶部
  3. 在当前导入的位置,改为调用步骤1中定义的函数

相关问题 更多 >