如何在Python服务器端脚本中打印HTML?

2 投票
2 回答
2848 浏览
提问于 2025-04-16 18:11

我有一个这样的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文件夹里,就应该能正常工作,即使没有'shebang'(那是文件开头的一种标记)。

Fatcow不允许使用自定义模块,只能使用标准的Python模块。默认情况下,他们不允许访问我的cgi-bin文件夹,所以我得打电话给他们,之后下面的内容就能正常工作了。

2 个回答

3

你需要一个可以运行Python代码的网页服务器。

有几种不同的选择可以考虑。

  • Twisted Web 是一个用Python写的网页服务器,它可以让你轻松地从Python提供内容,使用起来非常简单。

  • Apache或nginx加上Django,则提供了一个更完整的解决方案,可以用来开发一个完整的网页应用。

2

你在用哪个网页服务器呢?

如果你用的是apache2,有一个很不错的模块叫做apache2-modpython,它可以帮你执行服务器上的Python脚本,并把结果返回给用户。

使用这个模块后,你的Python代码看起来会像这样:

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

假设这个脚本叫做test.py,网址是 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

撰写回答