ich erstelle mit Flask nen webserver. Beim aufrufen einer Internetseite scheint es ein Problem mit dem Template zu geben.
Scheinbar findet Jinja den {% endif %}-Tag nicht, obwohl er vorhanden ist. Leider finde ich den Fehler nicht. Der Fehler tritt nur auf, wenn ich noch ein ist-group-item hinzufüge. (Die genaue Stelle ist im Code mit /* when adding a new list-group-item or anything else here, I get the error*/ beschrieben)
Der Fehler:
Code: Alles auswählen
jinja2.exceptions.TemplateSyntaxError: Unexpected end of template. Jinja was looking for the following tags: 'endif'. The innermost block that needs to be closed is 'if'.
Der volle Traceback ist ein bisschen länger, daher hänge ich ihn ans Ende der Request.
Der Code (unwichtige Parts mit .... abgekürzt):
Code: Alles auswählen
<head>
<title>...</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="{{ url_for('static', filename='bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='main.css') }}">
<script src="{{ url_for('static', filename='jquery-3.3.1.min.js')}}"></script>
<script src="{{ url_for('static', filename='bootstrap.min.js')}}"></script>
</head>
<body>
<nav class="navbar navbar-light bg-light navbar-expand-sm">...</nav>
<div class="container-fluid">
<div class="row justify-content-md-center">
<div class="col-md-10 col-sm-12">
<h2>...</h2>
<p>
...
</p>
{% if gold %} // true if all required files exists
<ul class="list-group" id="mainContentBox">
<li class="list-group-item list-group-item-secondary">
<h5>...</h5>
</li>
<li class="list-group-item">
<div class="form-group">
...
</div>
</li>
<li class="list-group-item">
<label for="userRole">...</label>
<div class="input-group">
...
</div>
</li>
{% if st["telegram_established"] == false %} // unnecessary for this problem, i think
<li class="list-group-item">
<div class="alert alert-info" role="alert">
...
</div>
</li>
{% else %}
<li class="list-group-item">
<div class="form-group">
...
</div>
</li>
{% endif %}
<li class="list-group-item list-group-item-secondary">
<h5>...</h5>
</li>
<li class="list-group-item">
<div class="form-group">
...
</div>
</li>
<li class="list-group-item">
<div class="form-group">
...
</div>
</li>
<li class="list-group-item">
<div class="form-group">
...
</div>
</li>
/*
when adding a new list-group-item or anything else here, I get the error
*/
</ul>
<br />
<a class="btn btn-success btn-lg float-right mb-3 ml-3" role="button" id="button_execute" onclick="finalizeConfig()">...</a>
{% else %}
<div class="alert alert-danger" role="alert">
<h5>...</h5>
<p>
...
</p>
</div>
<br />
{% endif %}
</div>
</div>
<script src="{{ url_for('static', filename='main_setupUser.js')}}"></script>
</div>
</body>
Jakob
Hier nochmal der ausführliche Fehler
Code: Alles auswählen
ERROR:flask.app:Exception on /setupUser [GET]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3/dist-packages/flask/app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3/dist-packages/flask/app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/lib/python3/dist-packages/flask/_compat.py", line 35, in reraise
raise value
File "/usr/lib/python3/dist-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3/dist-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/pi/Desktop/Jarvis-onworking/Jarvis/wb_server.py", line 107, in setupUser
return render_template("setupUser.html", nav=nav, st=standards, gold=gold)
File "/usr/lib/python3/dist-packages/flask/templating.py", line 134, in render_template
return _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list),
File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 869, in get_or_select_template
return self.get_template(template_name_or_list, parent, globals)
File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 830, in get_template
return self._load_template(name, self.make_globals(globals))
File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 804, in _load_template
template = self.loader.load(self, name, globals)
File "/usr/lib/python3/dist-packages/jinja2/loaders.py", line 125, in load
code = environment.compile(source, name, filename)
File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 591, in compile
self.handle_exception(exc_info, source_hint=source_hint)
File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 780, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/lib/python3/dist-packages/jinja2/_compat.py", line 37, in reraise
raise value.with_traceback(tb)
File "/home/pi/Desktop/Jarvis-onworking/Jarvis/webserver/template/setupUser.html", line 111, in template
{% else %}
File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 497, in _parse
return Parser(self, source, name, encode_filename(filename)).parse()
File "/usr/lib/python3/dist-packages/jinja2/parser.py", line 901, in parse
result = nodes.Template(self.subparse(), lineno=1)
File "/usr/lib/python3/dist-packages/jinja2/parser.py", line 883, in subparse
rv = self.parse_statement()
File "/usr/lib/python3/dist-packages/jinja2/parser.py", line 130, in parse_statement
return getattr(self, 'parse_' + self.stream.current.value)()
File "/usr/lib/python3/dist-packages/jinja2/parser.py", line 223, in parse_if
drop_needle=True)
File "/usr/lib/python3/dist-packages/jinja2/parser.py", line 170, in parse_statements
self.fail_eof(end_tokens)
File "/usr/lib/python3/dist-packages/jinja2/parser.py", line 104, in fail_eof
return self._fail_ut_eof(None, stack, lineno)
File "/usr/lib/python3/dist-packages/jinja2/parser.py", line 90, in _fail_ut_eof
self.fail(' '.join(message), lineno)
File "/usr/lib/python3/dist-packages/jinja2/parser.py", line 59, in fail
raise exc(msg, lineno, self.name, self.filename)
jinja2.exceptions.TemplateSyntaxError: Unexpected end of template. Jinja was looking for the following tags: 'endif'. The innermost block that needs to be closed is 'if'.