Running a shell command from a flask app

flask, python, shell

Solution

It's a simple typo. `cd` in the following line should be `cmd`:

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

UPDATE

There's another typo; remove a space in the second item:

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

Problem

I'm trying to run a shell command from a flask app and trying to grab the output. The app I'm trying with is following: ``` 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() ``` The shell command is ok. I checked it outside, but from the browser I'm getting "internal sever error". EDIT: As the first answer pointed out it had a typo...But now its running ok but I'm not getting any output in my browser...

Original source