【问题标题】:How to print to HTML using python as server side script?如何使用 python 作为服务器端脚本打印到 HTML?
【发布时间】:2011-05-26 05:49:29
【问题描述】:

我有以下 html 按钮

<td><form id="form2" name="form2" method="post" onclick="../cgi-bin/py/GuestBookEntry.py">
<input type="submit" name="gBookSrib" id="gBookSrib" value="Sribble" />
</form></td>

我的python脚本是

#!/usr/bin/python
print "Content-type: text/html\n\n"
print "<html><body>Hello World!</body></html>

当我单击按钮时,我希望我的服务器端脚本执行并创建一个 html 页面。我该怎么做?

我的虚拟主机服务提供商是 fatcow。我认为他运行 apache,有没有办法检查它?是的,他支持 python cgi 脚本。他提到如果我将我的 'py' 文件放在 cgi-bin 中,它应该可以工作,即使没有 'she'bang。

Fatcow 不允许自定义模块。只有标准的 python 模块。默认情况下,他们不允许访问我的 cgi-bin 文件夹,所以不得不调用他们,然后下面的东西就可以正常工作了。

【问题讨论】:

  • sys.write("Content-type: text/html\r\n\r\n") 以符合规范。你熟悉 Apache 吗?
  • @khachik - 不是 apache 新手,我的虚拟主机是 fatcow.com,但我认为他在 apache 上运行它。

标签: python html


【解决方案1】:

您需要一个提供 Python 代码的网络服务器。

有几种不同的可能性。

  • Twisted Web 是用 Python 编写的网络服务器,允许您以最小的开销从 python 提供内容。

  • Apache / ngnix + Django 提供更完整的堆栈来开发完整的 Web 应用程序

【讨论】:

  • 谢谢,但我如何安装自定义模块。我的主机提供商是其他人(fatcow.com),他提供对 python cgi 的支持,但是我如何打印到网页以在按钮单击时查看我的 python 函数的输出
  • 你的账户有 ssh 访问权限吗?
  • 不,我和客服谈过了,他们只支持标准的 Python 2.5 模块。而已。但我让它工作了。谢谢
【解决方案2】:

您使用的是哪个网络服务器? 对于 apache2,有一个非常整洁的模块叫做 apache2-modpython,它负责执行服务器端的 python 脚本并将结果返回给客户端。

使用这个模块,你的 python 应该是这样的:

def index (req): return "<html><body>Hello World!</body></html>"

假设这个脚本名为 test.py 并且具有 URI http://yourserver.tld/test.py,那么您的表单将如下所示:

<form id="form2" name="form2" method="post" action="test.py">

在站点定义的条目中添加以下行

    AddHandler mod_python .py
    PythonHandler mod_python.publisher
    PythonDebug On

【讨论】:

  • 在哪里添加站点定义? .ht 访问?我必须看看 fatcow(我的网络主机服务提供商)如何提供对 htaccess 文件的访问权限。
  • 不在 htaccess 中,而是在您的站点定义中。默认位于 /etc/apache2/sites-enabled。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-13
  • 1970-01-01
  • 2011-11-06
  • 1970-01-01
  • 2013-04-04
  • 1970-01-01
相关资源
最近更新 更多