You need to enable JavaScript to run this app. 使用Flask结合Jinja2渲染npoint虚拟博客JSON遇TemplateSyntaxError求解
优惠活动
大模型
产品
解决方案
定价
更多

使用Flask结合Jinja2渲染npoint虚拟博客JSON遇TemplateSyntaxError求解

问题解决方案

你的后端代码逻辑没有问题——控制台能正常获取并打印JSON数据,说明接口请求、Flask向模板传参的全链路是通的,报错全部来自blog.html模板的两处Jinja语法书写错误:

  • 字段访问的字符串引号没有闭合:原代码中访问title字段时写的是blog_posts["title],在title后面漏了闭合的双引号。Jinja解析器读到这里时会判定字符串还未结束,一路错位匹配后续内容,最终在解析到subtitle那行时抛出“期望逗号、实际读到subtitle”的语法错位报错。
  • 循环语法带了多余标点:Jinja的for循环语法不需要在语句末尾加冒号,你写的{% for blog_posts in posts: %}多了末尾的:,不符合Jinja的模板语法规则。

修正后的blog.html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Blog</title>
</head>
<body>
    {% for blog_post in posts %}
            <h1>{{ blog_post["title"] }}</h1>
            <h2>{{ blog_post["subtitle"] }}</h2>
    {% endfor %}
</body>
</html>

改完这两处语法错误后,页面即可正常循环渲染3篇博客的标题与副标题。

注:循环变量名从blog_posts调整为blog_post只是更贴合单条博客数据的语义,不影响功能实现,保留原变量名也完全可以。


内容的提问来源于stack exchange,提问作者Vimalan Karunakaran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.05 11:27:05