用浏览器运行命令

时间:2011-10-12 23:43:00

标签: javascript python macos unix controls

我想在网站上有一个“控制面板”,当按下一个按钮时,我希望它在服务器(我的电脑)上运行一个命令。该面板将运行我编写的不同python脚本(每个按钮一个脚本),我想在我的Mac,iPod touch和我的wii上运行面板。我看到的最好的方式是一个网站,因为他们都有浏览器。每当按下按钮时,是否有javascript或其他东西在我的计算机上运行命令?

编辑:我听说AJAX可能适用于基于服务器的事情,但我不知道该怎么做。是否有“系统”块或我可以使用的东西?

3 个答案:

答案 0 :(得分:0)

以下是三个选项:

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

Javascript基本上是用于在浏览器中工作(通常为最终用户呈现一些好看的东西)。你想要的(正如其他人已经说过的那样)是一种将HTML表单动作连接到web服务器“后端”上的动作的方法。这正是(正如RobG指出的那样)CGI的用途。一个非常受Apache用户欢迎的CGI的替代方案是mod_python - 区别在于“后端”操作是作为独立进程(CGI)运行还是作为Web服务器进程(mod_python)运行,但对于大多数基本应用程序而言,服务器端是脚本不需要关心。如果您在共享托管环境中,您可能没有选择 - 请询问您的系统管理员(或阅读您的托管服务文档),以了解在这种情况下如何最好地运行CGI脚本。

注意事项:

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

  2. 您希望完成的“后端”操作将使用网络服务器的权限/权限完成,这可能与您通常用于执行这些操作的用户帐户的权限/权限不同。有各种各样的方法(使用自定义守护进程和/或sudo操作),但你真的需要清楚地了解webserver sysadmin(如果web服务器暴露给Big Bad Internet)关于它将如何工作< em>在之前部署任何东西,否则你会冒黑风险(尤其是,如果你是菜鸟)使黑客能够利用你的“命令网关”破解网络服务器

  3. 当然,如果你只是在个人笔记本电脑上做这一切以获得乐趣(毕竟问题上有一个OSX标签),那么是网络服务器系统管理员,而你'在学习沿途你需要知道的一切时,你可以反复自由地劈开并愉快地射击自己,只要你不在网络上就可以了。在这种情况下,您可能会发现this tutorial很有用。