1

所以我目前正在尝试让 python 在网页上输出 html。它不起作用,因为屏幕上没有任何内容,也不知道为什么。像这样运行服务器:

from http.server import HTTPServer, CGIHTTPRequestHandler

port = 8080

httpd = HTTPServer(('', port), CGIHTTPRequestHandler)
print("Starting simple_httpd on port: " + str(httpd.server_port))
httpd.serve_forever()

我的简单文件,只是为了测试并确保我可以按照我尝试的方式完成此操作。我收到此表单,该表单包含一个电子邮件输入:

#! /usr/local/bin/python3
#This file is used for testing to make sure output to browser is as expected

import cgi
form_data = cgi.FieldStorage()
email = form_data['email'].value

print("<!doctype html> <br />")
print("<html> <head></head><body>")

print("<p>This is the email info: " + email+</p>)
print("</body>")
print("<html>")

我是 python 新手,基本上只是想把它打印出来。我已经搜索过,但还没有找到答案。所以我希望堆栈溢出的杰出思想可以帮助我。我不想要一个框架,只是为了能够打印出一些东西,但不确定为什么它不起作用。

4

2 回答 2

1

你没有关闭你的 html 标签。将最后一个更改为 /html。

于 2012-04-29T06:52:44.177 回答
0

我一直在寻找我的答案大约一天,终于找到了答案。这是最简单的事情,但令我惊讶的是没有 python 开发人员知道。显然,在输出任何内容之前需要添加这一行:

print('Content-type: text/html \n')

现在我在 python 之前从未处理过 CGI 脚本,所以我不确定这是否是所有这些脚本的要求。因此,我无法确定其背后的实际原因。还必须注意新的字符行必须存在,因为没有它也无法工作。也不太确定。我希望有类似问题的人会偶然发现这一点,因为它大大简化了在 python 上制作一个小型网页,而不是学习一个框架,这让他们可以专注于 python 代码。

我也将感谢任何真正知道为什么必须完成上述修复的人。

于 2012-04-30T02:31:11.593 回答