如何在网页上以交互方式运行 python 或 bash 脚本?

我正在建立一个网站,我想在我的网页上显示一个以交互方式运行脚本(python 或 bash)的终端。

有点像 trinket.io,但我想使用我服务器上的 python 解释器或 bash,这样我就可以安装 pip 包并总体上控制脚本的各个方面。

我在考虑类似交互式框架的东西,它显示终端和其中执行的内容,obv 支持用户交互。

一个很好的例子是https://create.withcode.uk/,它正是我想要的,但我想用我自己的模块和生态系统将它托管在我自己的服务器上。这在安全方面似乎也很不错。

有没有这样的东西?


holdtom
浏览 227回答 2
2回答

莫回无

如果我理解得很好,你会寻找一种机制,它允许你在网络服务器上显示一个终端。然后你想在那个终端上运行一个交互式 python 脚本,对吧。所以最终共享一个终端的解决方案不一定要用python写,对吧?(虽然我必须承认,如果我找到它们,我更喜欢 python 解决方案,但有时务实并不是一个坏主意)您可能会在 google 上搜索 http 和终端仿真器。也许 ttyd 符合要求。https://github.com/tsl0922/ttyd在 Linux 上构建可以用sudo apt-get install build-essential cmake git libjson-c-dev libwebsockets-devgit clone https://github.com/tsl0922/ttyd.gitcd ttyd && mkdir build && cd buildcmake ..make && make install用法类似于:ttyd -p 8888 yourpythonscript.py然后你可以连接到网络浏览器http://hostip:8888您当然可以将此 URL“隐藏”在反向代理后面并为其添加身份验证或添加诸如--credential username:password密码保护 URL 之类的选项。附录: 如果您想与不同的人共享多个脚本并且共享更像是一个即时的事情,那么您可以查看 tty-share ( https://github.com/elisescu/tty-share ) 和 tty-server ( https://github.com/elisescu/tty-server )tty-server 可以在 docker 容器中运行。tty-share 可用于在您的机器上的一个终端上运行脚本。它会输出一个 url,你可以将它提供给你想要与之共享特定会话的人)如果你认为这很有趣,我可能会详细说明这个

长风秋雁

>> 在此插入安全免责声明 <<最简单、最骇人听闻的方法是创建一个div用于存储输出的元素和一个input用于输入命令的元素。然后你可以将POST命令ajax到后端控制器。控制器将接受命令并运行它,同时捕获命令的输出并将其发送回网页以在div在 python 中,我使用它来捕获命令输出:from subprocess import Popen, STDOUT, PIPEproc = Popen(['ls', '-l'], stdout=PIPE, stderr=STDOUT, cwd='/working/directory')proc.wait()return proc.stdout.read()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python