1

我让 Mako 从预处理器中获取模板,现在认为在我的 if 语句之后有一个“通过”。

这是完整的回溯

Error !
SyntaxException: (SyntaxError) invalid syntax (, line 1) (u"if ${session['anonymous']}:pass") in file '/.../site/templates/shpaml/views/index.html' at line: 3 char: 1
1 <p>your anonymous status is ${session['anonymous']}</p>
2
3 % if ${session['anonymous']}:
4
5 <a href='/login/'>login</a>
6
7 % else:
8
/.../site/library/mako/pyparser.py, line 37:
raise exceptions.SyntaxException("(%s) %s (%s)" % (e.__class__.__name__, str(e), repr(code[0:50])), **exception_kwargs)
/.../site/library/mako/ast.py, line 30:
expr = pyparser.parse(code.lstrip(), "exec", **exception_kwargs)
/.../site/library/mako/ast.py, line 82:
super(PythonFragment, self).__init__(code, **exception_kwargs)
/.../site/library/mako/parsetree.py, line 69:
code = ast.PythonFragment(text, **self.exception_kwargs)
/.../site/library/mako/lexer.py, line 94:
node = nodecls(*args, **kwargs)
/.../site/library/mako/lexer.py, line 313:
self.append_node(parsetree.ControlLine, keyword, isend, self.escape_code(text))
/.../site/library/mako/lexer.py, line 152:
if self.match_control_line():
/.../site/library/mako/template.py, line 257:
node = lexer.parse()
/.../site/library/mako/template.py, line 93:
(code, module) = _compile_text(self, file(filename).read(), filename)
/.../site/library/mako/lookup.py, line 127:
self.__collection[uri] = Template(uri=uri, filename=posixpath.normpath(filename), lookup=self, module_filename=(self.modulename_callable is not None and self.modulename_callable(filename, uri) or None), **self.template_args)
/.../site/library/mako/lookup.py, line 85:
return self.__load(srcfile, uri)
/.../site/library/templates/__init__.py, line 25:
template = lookup_map[type].get_template(template_name)

为什么回溯显示会通过但不会在回溯源中显示?最重要的是,它说错误的行号。第 1 行中的 ${session['anonymous']} 返回 True(如果我删除了语法错误)。所以这没有任何问题。

4

1 回答 1

1

嗯,这是一个令人尴尬的案例之一,需要几天的痛苦才能弄清楚这么简单的事情:

它需要是

if session['anonymous']:
于 2010-02-09T19:20:23.723 回答