Jinja2返回空白页面

时间:2014-08-12 15:24:44

标签: python python-3.x cgi jinja2

我正在使用Jinja2和python 3.3.1,我的模板代码如下:

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8" />

  <title>{{ title }}</title>
  <meta name="description" content="{{ description }}" />
</head>

<body>

<div id="content">
  <p>Why, hello there!</p>
</div>

</body>
</html>

和我的python.cgi文件如下:

from jinja2 import Template
print("Content-type: text/html\n\n")

templateLoader = jinja2.FileSystemLoader( searchpath="\\")
templateEnv = jinja2.Environment( loader=templateLoader )
TEMPLATE_FILE = "cgi-bin/example1.jinja"
template = templateEnv.get_template( TEMPLATE_FILE )

templateVars = { "title" : "Test Example",
               "description" : "A simple inquiry of function." }
outputText = template.render( templateVars )

所有我得到的是一个没有html的空白页面,cgi-header工作意味着浏览器正在识别它的html但是&#39;为什么,你好那里&#39;没有显示。 jinja2也在工作,因为在翻译模式下我创建了一个简单的模板,如:

t = Template("hello! {{title}}")
t.render(title="myname")

它显示你好! MYNAME

error_log也没有错。怎么回事?

1 个答案:

答案 0 :(得分:1)

Python解释器会自动回显任何表达式的结果,只要它不返回None

在CGI脚本中,您需要明确地写出结果:

outputText = template.render( templateVars )
print(outputText)

template.render()只生成字符串结果,它不会为你写入stdout。