[英]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.