2013-04-10 56 views
2

我完成了一些python教程,并希望进一步深入。我可以通过在桌面上按f5(保存并运行)来打开IDLE并执行代码,但这是我的能力的限制。我想能够执行一个网页上的程序在网站上运行Python文件

我试着简单地上传文件到我的服务器,然后浏览到铬。我相信你知道发生了什么事情:屏幕上显示的网址。

因为我是python的新手,我不确定从哪里开始,甚至不知道要问什么问题。基本上我想在browswer中运行该程序,就好像browswer是IDLE一样,或者更好的是,创建一个html/css按钮,在单击时运行该程序。

+2

你可以像CGI那样运行它我认为...你可以使用php的exec函数。您可以使用烧瓶或django并使用fcgi或乘客运行一个网站。这取决于你的意思......但我认为只是使用php的exec函数可能是你想要的 – 2013-04-10 04:06:15

+0

@Joran谢谢,我将从exec函数开始,看看我得到了什么。基本上我只想静态网页有一些“点击我来运行简单的Python脚本”按钮。 – Travis 2013-04-10 04:13:07

+0

确保你的py文件以'#!/ bin/python'开始,并且/或者叫做exec('python myscript.py')'...这可能是一个巨大的巨大安全风险,所以我会保留URL的秘密,也许密码保护......真的,我会建议做一个本地主机上,也许 – 2013-04-10 04:15:02

回答

5

我建议你看看flask。这是一个包含基本Web服务器的微型框架。这些文档应该能够帮助您实现您想要的大部分方式。

在网络上运行python通常意味着当你点击一个URL时,服务器运行某种python脚本,并返回一个字符串 - 你请求的页面的HTML内容。您不能像使用JavaScript一样使用python来'脚本'网页。

您可以在网页中运行的交互式解释器中运行python - 只需检查try ipython

+0

+1我几乎发布了这样的东西..但决定这听起来像是他只是想在Flask上执行文件/ – 2013-04-10 04:23:31

+0

+1;可能是Python的最佳入门网页框架。 – 2013-04-10 04:42:21

2

基本上,您只需配置您的Web服务器来执行该文件而不是显示它。通常情况下,您将此设置为*.py文件,但您可以将其限制在特定目录中的文件中。显然,你的服务器已经有这样的PHP文件设置。

用PHP包装Python(显然)不会增加速度,安全性或实用性。

下线你可能想看看框架,mod_python,WSGI等,但对于你的直接问题,这些是严重的矫枉过正。

这仅限于静态服务器端代码; JavaScript在访问者的浏览器中以交互方式运行,允许更加丰富的用户交互。服务器端脚本在浏览器尝试加载页面时运行,并且脚本完成时页面加载完成。如果你想在你的浏览器类似IDLE,这是一个JavaScript的挑战,而不是一个Python任务(和特定车轮已经被发明,产品化,销售,并销往美国:http://pythonfiddle.com/

0

这样的:

python -c "import urllib2; exec urllib2.urlopen("http://localhost:8000/test.py").read()"