3

None无论处理程序的输出多么简单,我都会在每个响应的末尾得到一个字符串。

这是我的处理程序代码:

class BaseHandler(webapp2.RequestHandler):
    @webapp2.cached_property
    def jinja2(self):
        return jinja2.get_jinja2(app=self.app)

    def render_response(self, _template, **context):
        rv = self.jinja2.render_template(_template, **context)
        self.response.write(rv)


class SimpleHandler(BaseHandler):
     def get(self):
        template_values = {
            'error' : "",
            'url' : os.path.basename(self.request.url)
        }

        self.render_response('temp.html', **template_values)

模板:

<!DOCTYPE html>
<html>
    <head>
        <title>Home</title> 
                <script src="http://code.jquery.com/jquery-1.8.2.js"></script>
    </head>
    <body>
        <div></div>
        <div>
            Test
        </div>
        <div>{{ error }}</div>
    </body>
</html>

最后是输出

Test
None

在此之后,每个输出的末尾都包含字符串“None”。帮助表示赞赏!

4

1 回答 1

1

需要注意的一点是,None它将返回一个空值(请参阅此答案)。为了处理它,您可以执行以下操作以确保error仅在存在时才打印 an:

<html>
    <head>
        <title>Home</title> 
        <script src="http://code.jquery.com/jquery-1.8.2.js"></script>
    </head>
    <body>
        <div></div>
        <div>
            Test
        </div>
        <!-- Here we check to see 'error' is not null; if not, print -->
        {% if error %}
            <div>{{ error }}</div>
        {% endif %}
    </body>
</html>
于 2013-01-01T22:46:43.030 回答