0

我的目标是创建一个使用 python 和烧瓶的网页。我希望能够在此网页中输入一些命令,将它们提交给烧瓶,烧瓶将在 python 解释器中执行命令。然后 Flask 将检索结果并将它们发送回网页以进行演示。

如何才能做到这一点?我目前能够执行 unix shell 命令,但我一生都无法弄清楚如何将命令发送到 python 解释器并检索结果。

我想我应该澄清一下目的。这是针对我工作的公司的内部 Web 应用程序。只有员工在我们的网络上并且只有在执行了适当的身份验证后才能访问它。员工需要一种方法来与他们通过 Web 浏览器登录的特定机器建立交互式 shell。

解决方案:

我找到了一个不错的模块名称 Pexpect,它完全符合我的要求。感谢您的所有建议。

4

3 回答 3

1

以下代码使用flask 和pexpect 模块来调用python 解释器。

@app.route('/console')
def console(): 
    import pexpect
    child = pexpect.spawn('python')
    child.expect('\n>>>')
    child.sendline('import os')
    child.expect('\n>>>')
于 2014-04-05T09:53:18.423 回答
0

好吧,您可以像执行 shell 脚本一样调用 python,并使用 -c 选项将 python 代码传递给它。请参阅http://docs.python.org/2/using/cmdline.html

但是,这是非常不安全的,我不建议在网络应用程序中这样做!

如果您对此进行了设置,请阅读 Python http://docs.python.org/2/library/restricted.html中的受限执行

于 2013-07-18T22:03:13.527 回答
0

Flask 中包含的 Werkzeug 调试器可以在出现异常时执行此操作,因此我认为将您的解决方案基于该代码应该相当容易,或者至少了解 Werkzeug 是如何做到的。

调试器服务器端代码在这里。客户端在这里

我希望你有充分的理由这样做,你通常不希望随机的人在你的服务器上执行代码。

于 2013-07-19T01:08:10.090 回答