我目前正在撰寫一個 Web 應用程式來遠程管理我的 Raspberry Pi。我已經有了一些功能,但我不知道如何制作控制臺。這是我目前擁有的:
from flask import * ##I know that this is not the “right way” but it is still in development
from subprocess import PIPE, run
app = Flask(__name__)
password = 'MYPASSWORD'
@app.route('/')
def console():
if request.method == "POST":
pw = request.form["pw"] #short for password
global password
if pw == password:
cmd = request.form["cmd"]
commandoutput = run(cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True)
return render_template('console.html', commandoutput=str(commandoutput.stdout).replace('\n', '\n'))
else:
return 'Auth Error'
else:
return render_template('console.html')
這是 console.html 檔案(僅重要部分):
<p>ADMIN PANAL</p>
<body>
latest output:
<p3>{{commandoutput}}</p3>
<body>
<form action="#" method="post">
<p>Command:</p>
<p><input type="text" name="cmd" /></p>
<p><input type="password" name="pw">
<p><input type="submit" value="submit"/></p>
</form>
除非用戶想要使用諸如 sudo、nano 或 python(console) 之類的命令或任何必須手動停止或需要任何型別的用戶輸入的命令,否則此代碼作業正常。
有什么簡單的方法可以解決這個問題。
uj5u.com熱心網友回復:
試圖實作的目標并非微不足道,對于運行 raspberry pi 的網路來說可能是一個巨大的安全問題。
確保您的 rasp 沒有暴露在互聯網上,只能在安全網路上本地訪問。
然后你可以使用像https://github.com/WalkerWang731/WebTerminal這樣的東西,它應該可以節省你自己做的作業,或者給你一個關于如何實作目標的靈感來源(我重復這不是微不足道的)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/395540.html
下一篇:ModuleNotFoundError:在AWSElasticBeanstalk上部署Flask應用程式時沒有名為“應用程式”的模塊
