将使用Flask获取的变量作为输入传递到scrip

2024-05-18 23:41:10 发布

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

我有一个python设置,其中一个方法连续返回扫描的RFID芯片的id。现在我切断了电源线,将扫描仪连接到wifi微控制器(ESP8266)。每次扫描芯片时,都会发出一个包含芯片ID的GET请求

我把烧瓶部分放在一个简单的脚本里。我不需要任何东西退回ESP8266。我希望有一个类或函数只返回收集到的值。我可以将值打印到stdout,在那里它也会显示在flask的日志输出中,但这并没有真正的帮助。如何将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)

Tags: 方法name脚本idappflaskuid芯片
1条回答
网友
1楼 · 发布于 2024-05-18 23:41:10

你只需要导入你的另一个并直接从路由中调用它。你知道吗

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调用或其他方法来执行另一个带有参数的脚本。这是非常不鼓励的,因为您正在将未净化的用户输入(通过url)传递到您的系统。你知道吗

@app.route('/urlpath/<uid>')
def rfiduid(uid):
    os.system(' '.join(['script.py', uid]))

如果UID作为'1 && really_bad_system_command'传递,则可以利用此漏洞

相关问题 更多 >

    热门问题