jinja2.exceptions.TemplateSyntaxError:预期标记“打印语句结束”,已“发布” - python

我是编程新手,最近我的一个朋友给了我一个项目,以使自己熟悉编程环境和语言(在此特定示例中为python)。
https://www.youtube.com/watch?v=QnDWIZuWYW0我将此视频用作初学者教程,以帮助我了解如何进行自己的个人项目。我编写的代码与视频中的代码完全一样,但出现错误。

from flask import Flask, render_template
app = Flask(__name__)

posts = [
    {
        'author': 'Alon Salzmann',
        'title': 'First Post',
        'content': 'First post content',
        'date posted': 'September 5, 2018'
    },
    {
        'author': 'Alon Salzmann',
        'title': 'Second Post',
        'content': 'Second post content',
        'date posted': 'September 6, 2018'
    }
]

@app.route("/")
def homepage():
    return render_template('Home.html', posts=posts)

@app.route("/about")
def about():
    return render_template('About.html')

if __name__ == '__main__':
    app.run(debug=True)

上面的代码是我编写的python代码,下面的代码是我编写的涉及python的html代码:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    {% for post in posts %}
    <h1>{{ post.title }}</h1>
    <p>By {{ post.author }} on {{ post.date posted }}</p>
    <p>{{ post.content }}</p>
    {% endfor %}
</body>
</html>

在cmd和powershell上运行程序(当然不是同时运行),并转到我的本地主机地址后,出现了标题中出现的错误:

“ jinja2.exceptions.TemplateSyntaxError:预期标记“打印语句结束”,已“发布””

我想对为什么会发生这种情况以及如何解决这个问题进行很好的解释。请记住,我是一个初学者,也许一开始可能需要解释一些基本概念:)。

ps。视频中那个家伙的代码有效,所以我很想了解我哪里出错了。

参考方案

<p>By {{ post.author }} on {{ post.date posted }}</p>行是这里的问题

<p>By {{ post.author }} on {{ post.date_posted }}</p>替换

post.date_posted是一个变量,应该与模型中的变量相同,并且它们之间的空格显然是语法错误(typos)

单行的'if'/'for'语句是否使用Python样式好? - python

我经常在这里看到某人的代码,看起来像是“单线”,这是一条单行语句,以传统的“if”语句或“for”循环的标准方式执行。我在Google周围搜索,无法真正找到可以执行的搜索类型?任何人都可以提出建议并最好举一些例子吗?例如,我可以一行执行此操作吗?example = "example" if "exam" in exam…

为什么使用'=='或'is'比较字符串有时会产生不同的结果? - python

我有一个Python程序,其中将两个变量设置为'public'值。在条件表达式中,我有比较var1 is var2失败,但如果将其更改为var1 == var2,它将返回True。现在,如果我打开Python解释器并进行相同的“是”比较,则此操作成功。>>> s1 = 'public' >>…

在返回'Response'(Python)中传递多个参数 - python

我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…

python JSON对象必须是str,bytes或bytearray,而不是'dict - python

在Python 3中,要加载以前保存的json,如下所示:json.dumps(dictionary)输出是这样的{"('Hello',)": 6, "('Hi',)": 5}当我使用json.loads({"('Hello',)": 6,…

烧瓶模板,包括不正确的文件 - python

我在Flask中使用jinja2.ChoiceLoader遇到了一个非常奇怪的问题(也尝试了使用FileSystemLoader的多个路径,没有喜悦)。我有几个“主题”目录,就像这样。/templates/ themes/ default/ layout.html menu.html blue/ layout.html grey/ menu.html ...…