【问题标题】:Run a Python file on a website在网站上运行 Python 文件
【发布时间】:2013-04-10 03:59:48
【问题描述】:

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

我尝试简单地将文件上传到我的服务器,然后在 chrome 中浏览它。我相信你知道发生了什么:url 在屏幕上显示文本。

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

【问题讨论】:

  • 我认为你可以将它作为 CGI 运行......你可以使用 php 的 exec 函数。您可以使用烧瓶或 django 并使用 fcgi 或乘客运行网站。这取决于你的意思......但我认为只使用 php 的 exec 函数可能就是你想要的
  • @Joran 谢谢,我将从 exec 函数开始,看看我得到了什么。基本上我只想要一个静态网页,上面有一些“点击我运行简单的 python 脚本”按钮。
  • 确保您的 py 文件以 #!/bin/python 开头和/或将其称为 exec('python myscript.py') ...这也可能是一个巨大的巨大安全风险,所以我会保密 URL 和密码受保护的......真的我建议只在本地主机上这样做
  • CGI 是否比 exec() 更安全?
  • 不一定,但我不知道网络堆栈的所有复杂性

标签: python web


【解决方案1】:

我建议您查看flask 之类的内容。它是一个包含基本 Web 服务器的微型框架。文档应该可以帮助您了解大部分情况。

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

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

【讨论】:

  • +1 我几乎发布了这样的内容...但我觉得这听起来真的像是他只是想执行文件/
  • 在 Flask 上+1;可能是 Python 的最佳入门 Web 框架。
【解决方案2】:

烧瓶很好。

Cherrypy - http://www.cherrypy.org/ - 也是在服务器上运行 python 的一种非常简单的方式的绝佳选择。

【讨论】:

    【解决方案3】:

    从根本上说,您只需将 Web 服务器配置为执行文件而不是显示它。通常,您为*.py 文件设置它,但您可以将其限制为特定目录中的文件。显然,您的服务器已经对 PHP 文件进行了这样的设置。

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

    您可能想查看框架、mod_python、WSGI 等,但对于您当前的问题,这些都是严重的矫枉过正。

    这仅限于静态服务器端代码; JavaScript 在访问者的浏览器中以交互方式运行,允许更丰富的用户交互。服务器端脚本在浏览器尝试加载页面时运行,并且在脚本完成后页面加载完成。如果您想在浏览器中使用 IDLE 之类的东西,那就是 JavaScript 挑战而不是 Python 任务(并且该特定轮子已经被发明、产品化、营销并出售给美国人:http://pythonfiddle.com/

    【讨论】:

      【解决方案4】:

      像这样:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-03
        相关资源
        最近更新 更多