语法jinja2模板值无效

时间:2013-03-21 01:49:52

标签: google-app-engine python-2.7 jinja2

为什么 max_height 会产生无效的语法错误?

main.py

max_height = 70

template_values = {   
   'max_height': max_height    # syntax error
   ...
}

的index.html

<html>
    <body>      
        {% for person in people %}
            {% if person.filter("height <", max_height %)
                <b>{{ person.first_name }}</b> 
                <b>{{ person.last_name }}</b>
                <b>{{ person.city }}</b> 
                <b>{{ person.birth_year }}</b> 
                <b>{{ person.height }}</b> 
                <hr></hr>
            {% endif %}
        {% endfor %}
    </body>
</html>

编辑1 这是 main.py

中的类MainPage
class MainPage(webapp2.RequestHandler):
    def get(self):

        people_query = Person.all()
        people = people_query.fetch(10)

        max_height = 70

        template_values = {
            'people': people
            'max_height': max_height
        }

        template = jinja_environment.get_template('index.html')
        self.response.out.write(template.render(template_values))

1 个答案:

答案 0 :(得分:1)

这一行:

{% if person.filter("height <", max_height %)

应该是这样的:

{% if person.filter("height <", max_height) %}

另外,我建议不要在模板本身中使用任何类似的过滤逻辑。将该代码放入您的应用程序代码中,然后使用该模板呈现HTML。