从 Flask 应用程序执行 bash 命令
Executing bash commands from flask application
应用详情:Ubuntu16.04 + flask + nginx + uwsgi
我正在尝试从 Flask 应用程序执行 bash 命令。
@app.route('/hello', methods=('GET', 'POST'))
def hello():
os.system('mkdir my_directory')
return "Hello"
上面的代码运行成功但没有创建任何目录。它还在我的本地创建了没有任何 nginx 级别设置的目录。
我也试过以下方法:
- subprocess.call(['mkdir', 'my_directory']) # 抛出内部服务器错误
- subprocess.call(['mkdir', 'my_directory'],shell=True) # 没有错误但是没有创建目录
- subprocess.Popen(['mkdir', 'my_directory']) # 抛出内部服务器错误
- subprocess.Popen(['mkdir', 'my_directory'],shell=True) # 没有错误但是没有创建目录
我是否需要更改任何 nginx 级别的配置。
终于明白了。我按照 Python 子进程调用 returns “未找到命令”,终端正确执行
.
我缺少的是 mkdir
的绝对路径。当我执行subprocess.call(["/bin/mkdir", "my_directory"])
时,它成功地创建了目录。
以上 link 包含完整的详细信息。
此外,如果有人能描述我需要为 mkdir
指定绝对路径的原因,我将不胜感激。
感谢大家。 :)
应用详情:Ubuntu16.04 + flask + nginx + uwsgi
我正在尝试从 Flask 应用程序执行 bash 命令。
@app.route('/hello', methods=('GET', 'POST'))
def hello():
os.system('mkdir my_directory')
return "Hello"
上面的代码运行成功但没有创建任何目录。它还在我的本地创建了没有任何 nginx 级别设置的目录。
我也试过以下方法:
- subprocess.call(['mkdir', 'my_directory']) # 抛出内部服务器错误
- subprocess.call(['mkdir', 'my_directory'],shell=True) # 没有错误但是没有创建目录
- subprocess.Popen(['mkdir', 'my_directory']) # 抛出内部服务器错误
- subprocess.Popen(['mkdir', 'my_directory'],shell=True) # 没有错误但是没有创建目录
我是否需要更改任何 nginx 级别的配置。
终于明白了。我按照 Python 子进程调用 returns “未找到命令”,终端正确执行 .
我缺少的是 mkdir
的绝对路径。当我执行subprocess.call(["/bin/mkdir", "my_directory"])
时,它成功地创建了目录。
以上 link 包含完整的详细信息。
此外,如果有人能描述我需要为 mkdir
指定绝对路径的原因,我将不胜感激。
感谢大家。 :)