簡體   English   中英

將使用燒瓶獲得的變量作為腳本的輸入傳遞

[英]Passing variables aquired using flask as input to script

我有一個 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)

您只需要導入另一個並直接從路由內調用它。

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'則可以利用此漏洞

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM