Python Twisted 运行 来自网站的 CLI 脚本

Python Twisted run CLI script from website

我想调用 python 我目前从网络界面构建的脚本。我想知道 twisted 是否可以做到这一点,或者是否有更好的方法来做到这一点?真的在寻找这方面的指南或文档,以便我可以构建它。

以下是用户访问网页时会发生什么的示例:

Welcome, enter the IP you want to ping:

    Submit

点击提交按钮将调用以下脚本并将网页中的 IP 传递给脚本。 (python3 ping.py 192.168.66.5)

#!/usr/bin/env python3

import sys
import subprocess

ip = sys.argv[1]

ping =subprocess.Popen(('ping -c 3 ' + ip),shell=True, stdout=subprocess.PIPE)
pingresult = str(ping.communicate()).split('\n')

for p in pingresult:
    print(p)

我希望在网页上看到的输出在网页上看起来像这样:

64 bytes from 192.168.66.5: icmp_seq=1 ttl=64 time=0.020 ms
64 bytes from 192.168.66.5: icmp_seq=2 ttl=64 time=0.015 ms
64 bytes from 192.168.66.5: icmp_seq=3 ttl=64 time=0.017 ms

--- 192.168.66.5 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.015/0.017/0.020/0.004 ms

这是可以做到的吗?

是的,这是可能的 Twisted has documentation on running processes。如果你的脚本和你拥有的一样简单,那么你应该考虑只使用 Twisted 的 reactor.spawnProcess() 函数。