Flask模版实例:自定义错误页面
2017-07-03 10:03
239 查看
自定义错误页面
如果你在浏览器的地址栏中输入了不可用的路由,那么会显示一个状态码为 404 的错误页面。现在我们通过使用模版改造这个页面。像常规路由一样,
Flask允许程序使用基于模版的自定义错误页面。最常见的错误代码有两个:
404:客户端请求未知页面或路由时显示
500:有未处理的异常时显示
为这两个错误代码指定自定义处理程序的方式:
@app.errorhandler(404) def page_not_fount(e): return render_template('404.html'), 404 @app.errorhandler(500) def internal_server_error(e): return
和视图函数一样,错误处理程序也会返回响应。它们还返回与该错误对应的数字状态码。
错误处理程序中引用的模版也需要编写。这些模版应该和常规页面使用相同的布局,因此要有一个导航条和显示错误消息的页面头部。
Jinja2的模版继承机制可以帮助我们解决这一问题。
Flask-Bootstrap提供了一个具有页面基本布局的基模版,同样,程序可以定义一个具有更完整页面布局的基模版,基本包含导航条,而页面内容则可留到衍生模版中定义。
首先我们创建一个基模版,它继承自
bootstrap/base.html,其中定义了导航条
示例
templates/base.html基模版
{% extends "bootstrap/base.html" %} {% block title %}Title{% endblock %} {% block navbar %} <div class="navbar navbar-inverse" role="navigation"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="/">Flask</a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li><a href="/">Home</a></li> </ul> </div> </div> </div> {% endblock %} {% block content %} <div class="container"> {% block page_content %}{% endblock %} </div> {% endblock %}
这个模版的
content块中只有一个
<div>容器, 其中包含了一个名为
page_content的新的空块, 块中的内容由衍生模版定义。
现在, 程序使用的模版集成自这个模版, 而不直接集成字
Flask-Bootstrap的基模版。通过继承
templates/base.htm模版编写自定义 404 错误页面很简单
示例
templates/404.html使用模版集成机制自定义 404 错误页面
{% extends "base.html" %} {% block title %}Page Not Found{% endblock %} {% block page_content %} <div class="page-header"> <h1>Not Found</h1> </ 4000 div> {% endblock %}
相关文章推荐
- ThinkPHP中自定义错误页面和提示页面实例
- ThinkPHP中自定义错误页面和提示页面实例
- ThinkPHP中自定义错误页面和提示页面实例
- flask-bootstrap 模板 +用户界面+自定义错误页面
- asp.net 自定义错误页面 问题
- DIV+CSS实例: 错误页面
- ASP.NET 记录页面错误及自定义错误页
- ASP.NET自定义错误处理页面的添加
- Apache之404错误页面自定义跳转说明
- 从SEO的角度看IIS自定义错误页面(来自http://hi.baidu.com/seolearner/blog/item/0916cb38dfbca5f53b87ceed.html)
- apache之404错误页面自定义跳转说明
- 发一张自定义页面的模版
- asp.net 自定义错误页面 问题
- 自定义sharepoint的错误页面的其中的一种解决方案
- 自定义sharepoint的错误页面
- 自定义非预期错误页面
- 关于错误处理的自定义错误页面
- 建立自定义的WordPress数据库错误页面
- ASP.NET自定义的错误页面
- ASPError对象与asp自定义错误处理页面