をクラッシュします。私は、実際のループをテストするために、一定でループのための私の主題を代入して、私はループのための実際の構文にそれを隔離しましクラウドSDKシェルのエラーメッセージに応じて試してみました。スニペットの何が間違っていますか?神社2は、私は神社のテンプレートIは、HTMLテンプレートのためではなく、いくつかの理由のために書いたの簡単なテストスニペットを持っているGoogle App Engineの
エラー:
File "C:\Users\Skyler\Documents\Reverie\reflect\templates\index.html",
line 9,
in template
{{% for test in my_list %}}
TemplateSyntaxError: unexpected '%'
index.htmlを
<!DOCTYPE html>
<html>
<head>
<title>{{title}}</title>
</head>
<body>
<h1> {{my_list[3]}} </h1>
<ul>
{{% for test in my_list %}}
<li>{{my_list[1]}}</li>
{{% endfor %}}
</ul>
</body>
</html>
test.py
import webapp2
import jinja2
import os
template_dir = os.path.join(os.path.dirname(__file__), "templates")
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir), autoescape = True)
class Handler(webapp2.RequestHandler):
def write(self, *a, **kw):
self.response.write(*a, **kw)
def render_str(self, template, **params):
t = jinja_env.get_template(template)
return t.render(params)
def render(self, template, **kw):
self.write(self.render_str(template, **kw))
class MainPage(Handler):
"""docstring for MainPage"""
def get(self):
self.render("index.html", title="Nani", my_list=[0,1,2,"string"])
app = webapp2.WSGIApplication([('/', MainPage),], debug=True)
app.yamlを
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url:/
script: test.app
libraries:
- name: jinja2
version: latest
完全なスタックトレース
ERROR 2017-07-18 05:02:36,960 webapp2.py:1528] unexpected '%'
Traceback (most recent call last):
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\webapp2-2.3\webapp2.py", line 1511, in __call__
rv = self.handle_exception(request, response, e)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\webapp2-2.3\webapp2.py", line 1505, in __call__
rv = self.router.dispatch(request, response)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\webapp2-2.3\webapp2.py", line 1253, in default_dispatcher
return route.handler_adapter(request, response)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\webapp2-2.3\webapp2.py", line 1077, in __call__
return handler.dispatch()
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\webapp2-2.3\webapp2.py", line 547, in dispatch
return self.handle_exception(e, self.app.debug)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\webapp2-2.3\webapp2.py", line 545, in dispatch
return method(*args, **kwargs)
File "C:\Users\Skyler\Documents\Reverie\reflect\test.py", line 22, in get
self.render("index.html", title="Nani", my_list=[0,1,2,"string"])
File "C:\Users\Skyler\Documents\Reverie\reflect\test.py", line 17, in render
self.write(self.render_str(template, **kw))
File "C:\Users\Skyler\Documents\Reverie\reflect\test.py", line 13, in render_s
tr
t = jinja_env.get_template(template)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\jinja2-2.6\jinja2\environment.py", line 719, in get_templa
te
return self._load_template(name, self.make_globals(globals))
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\jinja2-2.6\jinja2\environment.py", line 693, in _load_temp
late
template = self.loader.load(self, name, globals)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\jinja2-2.6\jinja2\loaders.py", line 127, in load
code = environment.compile(source, name, filename)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\jinja2-2.6\jinja2\environment.py", line 493, in compile
self.handle_exception(exc_info, source_hint=source)
File "C:\Users\Skyler\Documents\Reverie\reflect\templates\index.html", line 9,
in template
{{% for test in my_list %}}
TemplateSyntaxError: unexpected '%'
ERROR 2017-07-18 05:02:36,960 wsgi.py:279]
Traceback (most recent call last):
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\google\appengine\runtime\wsgi.py", line 267, in Handle
result = handler(dict(self._environ), self._StartResponse)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\webapp2-2.3\webapp2.py", line 1519, in __call__
response = self._internal_error(e)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\webapp2-2.3\webapp2.py", line 1511, in __call__
rv = self.handle_exception(request, response, e)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\webapp2-2.3\webapp2.py", line 1505, in __call__
rv = self.router.dispatch(request, response)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\webapp2-2.3\webapp2.py", line 1253, in default_dispatcher
return route.handler_adapter(request, response)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\webapp2-2.3\webapp2.py", line 1077, in __call__
return handler.dispatch()
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\webapp2-2.3\webapp2.py", line 547, in dispatch
return self.handle_exception(e, self.app.debug)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\webapp2-2.3\webapp2.py", line 545, in dispatch
return method(*args, **kwargs)
File "C:\Users\Skyler\Documents\Reverie\reflect\test.py", line 22, in get
self.render("index.html", title="Nani", my_list=[0,1,2,"string"])
File "C:\Users\Skyler\Documents\Reverie\reflect\test.py", line 17, in render
self.write(self.render_str(template, **kw))
File "C:\Users\Skyler\Documents\Reverie\reflect\test.py", line 13, in render_s
tr
t = jinja_env.get_template(template)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\jinja2-2.6\jinja2\environment.py", line 719, in get_templa
te
return self._load_template(name, self.make_globals(globals))
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\jinja2-2.6\jinja2\environment.py", line 693, in _load_temp
late
template = self.loader.load(self, name, globals)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\jinja2-2.6\jinja2\loaders.py", line 127, in load
code = environment.compile(source, name, filename)
File "C:\Users\Skyler\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform
\google_appengine\lib\jinja2-2.6\jinja2\environment.py", line 493, in compile
self.handle_exception(exc_info, source_hint=source)
File "C:\Users\Skyler\Documents\Reverie\reflect\templates\index.html", line 9,
in template
{{% for test in my_list %}}
TemplateSyntaxError: unexpected '%'
INFO 2017-07-17 22:02:36,970 module.py:832] default: "GET/HTTP/1.1" 500 -
それはそれだった、神聖なderp私はそんなに時間を費やさなかった。 インタプリタのライフサイクルが進行する限り、追加のブレースが原因でエラーが発生する可能性があります。 – Skyler
@Skylerなぜこれが当てはまるのかを知るには、jinja2ソースにかなり深く掘り下げなければならないと思います。私はそれがより優雅に失敗するはずであることに同意する。 –