当前位置:  开发笔记 > 编程语言 > 正文

Google App Engine(python):TemplateSyntaxError:'for'包含五个单词的语句应以'reverse'结尾

如何解决《GoogleAppEngine(python):TemplateSyntaxError:'for'包含五个单词的语句应以'reverse'结尾》经验,为你挑选了1个好方法。

这是使用Web应用程序框架,而不是Django.

下面的模板代码给了我一个TemplateSyntaxError:当我尝试渲染字典时,带有五个单词的'for'语句应以'reverse'错误结束.我不明白是什么导致了这个错误.有人可以为我解释一下吗?

{% for code, name in charts.items %}
   
{% endfor %}

我正在使用以下内容进行渲染:

class GenerateChart(basewebview):

    def get(self):
        values = {"datepicker":True}
        values["charts"] = {"p3": "3D Pie Chart", "p": "Segmented Pied Chart"}
        self.render_page("generatechart.html", values)

class basewebview(webapp.RequestHandler):
    ''' Base class for all webapp.RequestHandler type classes '''
    def render_page(self, filename, template_values=dict()):
        filename = "%s/%s" % (_template_dir, filename)
        path = os.path.join(os.path.dirname(__file__), filename)
        self.response.out.write(template.render(path, template_values))

Alex Martell.. 13

这是使用Web应用程序框架,而不是Django.

但框架除外,你必须使用Django的模板 - 显然是旧版本,它不支持"自动解包"风格for- 可能是0.96版本,这是App Engine的默认版本.要使用更现代的Django的任何部分(包括"只是模板"),你必须有一个settings.py文件并执行:

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from google.appengine.dist import use_library
use_library('django', '1.1')

按照文档.之后你可以from django import template和你一起使用1.1版本的Django模板引擎.



1> Alex Martell..:

这是使用Web应用程序框架,而不是Django.

但框架除外,你必须使用Django的模板 - 显然是旧版本,它不支持"自动解包"风格for- 可能是0.96版本,这是App Engine的默认版本.要使用更现代的Django的任何部分(包括"只是模板"),你必须有一个settings.py文件并执行:

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from google.appengine.dist import use_library
use_library('django', '1.1')

按照文档.之后你可以from django import template和你一起使用1.1版本的Django模板引擎.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有