我有一个python设置,其中一个方法连续返回扫描的RFID芯片的ID。现在我剪断了电源线,将扫描仪连接到wifi微控制器(ESP8266)。每次扫描芯片时,都会发出包含芯片ID的GET请求。
我把烧瓶部分放在一个简单的脚本中。我不需要任何东西返回ESP8266。我想只有一个或多个函数只返回收集的值。我可以将值打印到stdout,它也出现在烧瓶的日志输出中,但这并没有真正帮助。如何将uid
传递给另一个脚本,我缺少什么?
有问题的剧本:
from flask import Flask
app = Flask(__name__)
@app.route('/urlpath/<uid>')
def rfiduid(uid):
print uid
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=False)
答案 0 :(得分:0)
您只需要导入另一个并直接从路线中调用它。
from flask import Flask
# A module which contains the stuff you're trying to do
from myothermodule import processRFID
app = Flask(__name__)
@app.route('/urlpath/<uid>')
def rfiduid(uid):
# Pass the UID to your other module here
processRFID(uid)
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=False)
如果你的其他代码是字面上一个脚本(从命令行接受输入参数),我建议你修改它,使它包含一个你可以从flask应用程序调用的函数。否则,您将需要使用os.system
调用或其他东西来执行带参数的其他脚本。由于您将未经过清理的用户输入(通过网址)传递到您的系统,因此非常不鼓励。
@app.route('/urlpath/<uid>')
def rfiduid(uid):
os.system(' '.join(['script.py', uid]))
如果将UID作为'1 && really_bad_system_command'