Flask Bug记录之The innermost block that needs to be closed is 'block'.
源码
<!DOCTYPE html>
<title>{% block title %}{% endblock title %} - Flask</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
<!--
1、g在模板中自动可用。基于if g.useris set(from load_logged_in_user),显示用户名和 注销链接,或显示注册和登录的链接。
url_for()也可自动使用,并用于生成视图的 URL,而不是手动写出来。
2、在页面标题之后,在内容之前,模板循环返回的每条消息get_flashed_messages()。
flash()在视图中用于显示错误消息,这是将显示它们的代码。
3、此处定义的三个块将在其他模板中被覆盖:
3.1. {% block title %} 将更改浏览器选项卡和窗口标题中显示的标题。
3.2. {% block header %} 类似title但会更改页面上显示的标题。
3.3. {% block content %} 是每个页面的内容,例如登录表单或博客文章。
基本模板直接位于templates目录中。为了保持其他组织的有序性,蓝图的模板将放置在 与蓝图同名的目录中
-->
<nav>
<h1>Flaskr</h1>
<ul>
{% if g.user %}
<li><span>{{ g.user.get("username") }}</span></li>
<li><a href="{{ url_for('auth.logout') }}">Log Out</a></li>
{% else %}
<li><a href="{{ url_for('auth.register') }}">Register</a></li>
<li><a href="{{ url_for('auth.login') }}">Log In</a></li>
{% endif %}
</ul>
</nav>
<section class="content">
<header>
{% block header %}{% endblock header %}
</header>
{% for message in get_flashed_messages() %}
<div class="flash">{{ message }}</div>
{% endfor %}
{% block content %}{% endblock content %}
</section>
Bug
jinja2.exceptions.TemplateSyntaxError
jinja2.exceptions.TemplateSyntaxError: Unexpected end of template. Jinja was looking for the following tags: 'endblock'. The innermost block that needs to be closed is 'block'.


错误日志一直显示在 base.html 的34 行有问题,提示 The innermost block that needs to be closed is 'block'.
排查
初步排查是block 语法写错了,或者某个地方多了空格等 低级错误。
排查一遍代码,发现没有书写的错误,
再排查了是否新版本的 JinJa2有语法变更。导致的异常。
查了 2.10.X 版本的官网,发现基本语法也没问题。
问题所在
突发奇想,注释里有 {% block title %} 等。是不是他们引起的?
将这三个 block 删除后,程序果然正常了。
反思
在html里下 JinJa2 语法时, {% block %} 语句即使被注释掉了, 也依然生效。
这个坑要牢记。不然很难排查。
报错的地方, 和正在原因所在的地方,没啥关系。让人头疼。
Flask Bug记录之The innermost block that needs to be closed is 'block'.的更多相关文章
- Flask Bug记录之JinJa2.exceptions.UndefinedError: 'sqlite3.Row object' has no attribute 'get'
源码 py文件定义db的工厂函数如下 def get_db(): if "db" not in g: g.db = sqlite3.connect( current_app.con ...
- BUG 记录:移位运算与扩展欧几里得算法
BUG 记录:移位运算与扩展欧几里得算法 起因 上个月就开始打算用C++写一个ECC的轮子(为什么?折磨自己呗!),奈何自己水平有点差,拖到现在才算写完底层的大数运算.在实现欧几里得算法的时候,我开始 ...
- [ZHUAN]Flask学习记录之Flask-SQLAlchemy
From: http://www.cnblogs.com/agmcs/p/4445583.html 各种查询方式:http://www.360doc.com/content/12/0608/11/93 ...
- 【bug记录】OS Lab3 踩坑记
OS Lab3 踩坑记 Lab3在之前Lab2的基础上,增加了进程建立.调度和中断异常处理.其中测试包括进程建立以及进程调度部分. 由于是第一次做bug记录,而且是调试完bug后再做的记录,所以导致记 ...
- 微信小程序bug记录与解决
微信小程序bug记录 textarea textarea在模拟器上没有padding,可是在真机上会自带padding,而且在外部改不了,并且在安卓和IOS上padding还不一样 第一张图是在开发工 ...
- Block学习一门:基本使用,使用block包NSURLRequest异步请求
首先,看一下下面的代码: void (^myFirstBlock)(int theOne,int theTwo) = ^(int theOne,int theTwo){ NSLog(@"== ...
- flask开发没有解决的bug记录
sqlalchemy.exc.InvalidRequestError sqlalchemy.exc.InvalidRequestError: This Session's transaction ha ...
- ArcGIS 10.1 BUG记录
声明:笔者使用ARCGIS 10.1 XXX版,YYY版可能没有此处描写的问题 1. 关于注册数据库 发布启用FA的服务,需要为数据库进行ArcGIS Server注册,若通过ArcMap执行注册,会 ...
- 前端bug记录---不定时更新
在项目的开发中难免遇到各种各样的bug,我觉得还是有必要记录一下的,方便日后查询. safari window resize 为满足日常轮播需求,做一个符合当前业务的轮播插件,其中需要考虑windo ...
随机推荐
- [51Nod] 配对
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1737 求出树的重心,跑spfa #include <iostre ...
- MySQL 取分组后每组的最新记录
修改<常用SQL之日期格式化和查询重复数据>中表test1的创建时间,修改后的测试数据如下: 以姓名分组后提取每组最新创建的记录: SELECT a.* FROM test1 AS a, ...
- 手游折扣app票选结果公布哪个好哪个靠谱一目了然
2018年,是中国改革开放40年,也是中国互联网20年.“互联网推动了精神文明向更高水平的迈进,实现人的价值第一,创造美好生活,从生产高于生活.艺术高于成活,转向发现与实现生活本身美好,让想象成真.如 ...
- fsLayuiPlugin附件上传使用说明
fsLayuiPlugin 是一个基于layui的快速开发插件,支持数据表格增删改查操作,提供通用的组件,通过配置html实现数据请求,减少前端js重复开发的工作. GitHub下载 码云下载 测试环 ...
- ios 修饰词作用
copy: NSString\NSMutableString\Block weak: 代理.UI控件(weak) strong: 其他OC对象 assign: 基本数据类型(int\float).枚举 ...
- fastjson序列化和反序列化报com.alibaba.fastjson.JSONException: autoType is not support异常问题,解决方案整合
1.问题起因 2017年3月15日,fastjson官方发布安全升级公告,该公告介绍fastjson在1.2.24及之前的版本存在代码执行漏洞,当恶意攻击者提交一个精心构造的序列化数据到服务端时,由于 ...
- mysql中的union操作(整理)
mysql中的union操作(整理) 一.总结 一句话总结: union两侧的字段数和字段类型要是一样的 union可以接多个 orderby和排序可以在最后的union组合之后 1.union简单实 ...
- Mac下安装MySQL 5.6.40
Mac下安装MySQL 5.6.40 - 干勾鱼的CSDN博客 - CSDN博客 原创 Mac下安装MySQL 5.6.40 2018-06-18 10:34:03 我是干勾鱼 阅读数 5927 ...
- python画图matplotlib基础笔记
numpy~~基础计算库,多维数组处理 scipy~~基于numpy,用于数值计算等等,默认调用intel mkl(高度优化的数学库) pandas~~强大的数据框,基于numpy matplotli ...
- 004-log-common-logging,Apache整合日志框架JCL门面框架、JCL+log4j
一.概述 Jakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具体的日志实现工具.它提供给中间件/日志工具开发者一个 ...