python从脚本向解释器发送命令并获得结果

python从脚本向解释器发送命令并获得结果,python,flask,ipython,Python,Flask,Ipython,我的目标是创建一个使用python和flask的网页。我希望能够在这个网页中输入一些命令,将它们提交给flask,flask将在python解释器中执行这些命令。Flask随后将检索结果并将其发送回web页面进行演示 如何做到这一点?我目前能够执行unixshell命令,但我一辈子都不知道如何向python解释器发送命令并检索结果 我想我应该澄清一下目的。这是我工作的公司的内部web应用程序。只有员工才能在我们的网络上访问它,并且只有在执行了正确的身份验证之后。员工需要一种方法,使其能够与通过w

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

如何做到这一点?我目前能够执行unixshell命令,但我一辈子都不知道如何向python解释器发送命令并检索结果

我想我应该澄清一下目的。这是我工作的公司的内部web应用程序。只有员工才能在我们的网络上访问它,并且只有在执行了正确的身份验证之后。员工需要一种方法,使其能够与通过web浏览器登录的特定机器进行交互

解决方案:


我找到了一个很好的模块名Pexpect,它正是我想要的。感谢您的所有建议。

好吧,您可以像调用shell脚本一样调用python,并使用-c选项将python代码传递给它。看

然而,这是难以置信的不安全,我不建议在web应用程序中这样做


如果您对此有所了解,请阅读Python中的受限执行

当出现异常时,Flask附带的Werkzeug调试器可以执行此操作,因此我认为将解决方案建立在该代码上应该相当容易,或者至少可以了解Werkzeug是如何执行的

调试器服务器端代码为。客户端是


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

下面的代码使用flask和pexpect模块调用python解释器

@app.route('/console')
def console(): 
    import pexpect
    child = pexpect.spawn('python')
    child.expect('\n>>>')
    child.sendline('import os')
    child.expect('\n>>>')

你能更具体地回答你的问题吗。您的问题是如何让flask服务器运行,还是仅仅在python中运行命令?如果是后者,那么flask与此无关。Flask只是一个后端服务器框架。永远不要这样做!!!这到底是为了什么?