在Apache服务器上使用web.py打印HTML代码
我在我的Apache服务器上配置了web.py,并安装了flups。但是当我访问我的应用时,看到的是HTML代码,而不是正常的HTML页面。(见下文)
Content-Type: text/html
<HTML><HEAD><TITLE>Login Details</TITLE></HEAD><BODY>.......</BODY></HTML>
我在同一个目录下创建了另一个文件Test.py,里面有以下代码
#!/usr/bin/python
print "Content-Type: text/html\n\n"
print "<html><head></head><body>Present</body></html>"
这个文件可以正常显示页面。两个文件的执行权限是一样的(chmod 755)。
有没有人知道为什么会这样?
更新:我刚发现。如果我把应用的GET方法里的返回语句改成打印语句,它可以正常打印出表单,但最后也会打印出cookie、会话ID等信息。我需要配置什么才能让返回语句按预期工作?
这里有一段可能导致问题的示例代码:
#!/usr/bin/python
import web
urls = ("/CodeAnalyzer", "CodeAnalyzer")
app = web.application(urls, globals())
class CodeAnalyzer:
def GET(self):
init="Content-Type: text/html\n\n"
form="<html><head></head><body>Hello World</body><html>"
return init+form
if __name__ == "__main__":
app.run()
1 个回答
1
问题出在这一行:init="Content-Type: text/html\n\n"
这不是在web.py中正确传递头信息的方法。后来把它换成了web.header('Content-Type','text/html; charset=utf-8', unique=True)
,问题就解决了。