眉头运行命令

2024-06-15 13:10:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在一个网站上有一个“控制面板”,当一个按钮被按下时,我希望它在服务器(我的电脑)上运行一个命令。这个面板将运行我编写的不同的python脚本(每个按钮一个脚本),我想在我的Mac、ipodtouch和wii上运行这个面板。我认为最好的办法是建立一个网站,因为他们都有浏览器。当我按下按钮时,我的电脑上是否有javascript或其他东西来运行命令?在

编辑:我听说AJAX可能适用于这种基于服务器的东西,但我不知道该怎么做。有没有像“系统”块之类的东西我可以用?在


Tags: 命令服务器脚本面板编辑网站mac浏览器
3条回答

有三种选择:

  1. 让每个按钮提交一个隐藏字段中带有脚本名称的表单。服务器将接收表单参数,然后可以分支运行相应的脚本。在
  2. 让每个按钮连接到它自己唯一的URL,并在按钮上使用javascript来设置窗口位置到那个新的网址。您的服务器将接收到该URL,并可以根据该URL决定运行哪个脚本。你甚至可以在没有javascript的网页上使用链接。在
  3. 使用Ajax向服务器发出唯一的URL。这与前两个选项基本相同(从服务器的角度来看)。主要区别在于,web浏览器不会改变它指向的URL。ajax调用只是指示服务器执行某些操作并返回一些数据,然后宿主web页面可以使用这些数据执行任何操作。在

在客户端(浏览器)上,您可以用最简单的方法来完成。只是一个html表单。javascript可以更好地进行验证和ajax调用,这样页面就不必刷新了。但你的重点是在服务器上处理它。您可以接收您选择的语言的表单请求。如果您已经在运行python,那么可以编写一个超快速的cgipython脚本。看看python的cgi模块。如果您将在osx上托管它,那么您需要将它放入osx上的apache服务器中。 不幸的是,你关于如何写的问题超出了简单答案的范围。但是google对于如何编写html表单,或者查看jquery来构建一个快速表单,可以轻松地进行ajax调用。 然后搜索如何使用pythoncgi模块并接收POST请求。在

Javascript基本上是用来在浏览器中工作的(通常是为了呈现一些让最终用户看到的东西)。您想要的(正如其他人已经说过的)是一种将HTML表单操作连接到web服务器“后端”上的操作的方法。而这正是(正如RobG所指出的)CGI的目的。在Apache用户中非常流行的CGI的另一种选择是mod峎python,区别在于“后端”操作是作为独立进程(CGI)运行还是在web服务器进程(mod_python)中运行,但对于大多数基本应用程序,服务器端脚本不需要关心。如果您在一个共享的主机环境中,您可能别无选择—请您的系统管理员(或阅读您的托管服务文档)来了解在这种情况下如何最好地运行CGI脚本。在

注意事项:

  1. 您可能需要相当高级别的web服务器管理员访问权限和专业知识,以便按照您想要的方式设置所有内容。您至少需要能够(在权限和技术理解上)查看您的web服务器日志,编辑您的web服务器配置,并反弹(重新启动)您的http服务。

  2. 无论您想做什么“后端”操作都将使用Web服务器的权限/权限来完成,这可能与您通常用于执行这些操作的用户帐户的权限/权限不同。有很多方法可以解决这一问题(使用自定义守护进程和/或sudo操作),但是在部署任何东西之前,您确实需要与web服务器sysadmin(如果web服务器暴露在一个非常糟糕的Internet上)清楚地了解这将如何工作,否则您将面临非常实际的风险(,尤其是使黑客有可能利用你的“命令网关”来攻击网络服务器。

当然,如果你只是为了好玩而在你的个人笔记本电脑上做这些事情(毕竟这个问题上有一个OSX标签),那么就是网络服务器的系统管理员,你可以自由地进行黑客攻击,并在学习过程中不断地向自己的脚开枪,同时学习所有你需要知道的东西,只要你不在,就可以了一个网络。在这种情况下,您可能会发现this tutorial很有用。在

相关问题 更多 >