python - 从 flask 应用程序运行 shell 命令

标签 python shell flask

<分区>

我正在尝试从 Flask 应用程序运行 shell 命令并尝试获取输出。我正在尝试的应用程序如下:

from flask import Flask
import subprocess

app = Flask(__name__)

@app.route("/")

def hello():
    cmd = ["ls"," -l"]
    p = subprocess.Popen(cmd, stdout = subprocess.PIPE,
                            stderr=subprocess.PIPE,
                            stdin=subprocess.PIPE)
    out,err = p.communicate()
    return out
if __name__ == "__main__" :
    app.run()

shell命令没问题。我在外部进行了检查,但从浏览器中收到“内部服务器错误”。

编辑:正如第一个答案所指出的那样,它有一个错字......但现在它运行正常但我的浏览器中没有得到任何输出......

最佳答案

这是一个简单的错字。下一行中的cd应该是cmd:

p = subprocess.Popen(cd, # <----
                     stdout=subprocess.PIPE,
                     stderr=subprocess.PIPE,
                     stdin=subprocess.PIPE)

更新

还有一个错字;删除第二项中的空格:

cmd = ["ls", " -l"]
              ^

关于python - 从 flask 应用程序运行 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23977475/

相关文章:

python - 不同环境下搜索结果不同

python - PySide(或 PyQt)信号和槽基础知识

linux - 破管不再结束程序?

javascript - Flask-python : Dropdown selected value is not displayed when selected from dropdown?

python - 减少嵌套字典

python - 用于 sql 注入(inject)缓解的参数化查询 Postgres

python - 使用 shell 脚本安装 python 库

shell - 如何使用 awk 或 sed 将每个单独出现的单词替换为其他单词?

python - Flask应用中Redis与RDBMS共存(希望合作)

python - 在 Python Flask-login 中禁用 session Cookie 生成