Jinja: TemplateSyntaxError: expected token 'name', received 'string'

You have two files in your Flask application:

base.html

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="stylesheet" href="../static/main.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.1.1/css/bootstrap.min.css"> <title>Title</title> </head> <body> <div id="content"> {% marker "content" %} </div> </body> </html> 

upload.html that continues base.html

 {% extends "base.html" %} {% block "content " %} <title>Upload new File</title> <h1>Upload new File</h1> <form action="" method=post enctype=multipart/form-data> <p><input type=file name=file> <input type=submit value=Upload> </form> {% endblock %} 

I call the last in the view: return render_template('upload.html' ) and I get an error:

 jinja2.exceptions.TemplateSyntaxError TemplateSyntaxError: expected token 'name', got 'string' 
+6
source share
1 answer

The problem is that {% block "content" %} should be {% block content %} - the name of the block should not be specified.

In addition, the marker construct in your .html layout is not a valid Jinja2 tag - it must be {% block content %}{% endblock %} .

+5
source

All Articles