• 自定义错误页面


    如果你在浏览器的地址栏中输入了不可用的路由,那么会显示一个状态码为 404 的错误页面。现在这个错误页面太简陋、平庸,而且样式和使用了 Bootstrap 的页面不一致。

    像常规路由一样,Flask 允许程序使用基于模板的自定义错误页面。最常见的错误代码有两个:404,客户端请求未知页面或路由时显示;500,有未处理的异常时显示。为这两个错误代码指定自定义处理程序的方式如下所示:

    1. @app.errorhandler(404)
    2. def page_not_found(e):
    3. return render_template("404.html"), 404
    4. @app.errorhandler(500)
    5. def internal_server_error(e):
    6. return render_template("500.html"), 500
    其中的404.html和500.html可以自己定义。
    比如我的404.html如下所示:
    1. {% extends "base.html" %}
    2. {% block title %}Flask - Page Not Found{% endblock %}
    3. {% block page_content %}
    4. <div class="page-header">
    5. <h1>Not Foundh1>
    6. div>
    7. {% endblock %}

    其继承了一个base.html如下所示:

    1. {% extends "bootstrap/base.html" %}
    2. {% block title %}Flasky{% endblock %}
    3. {% block navbar %}
    4. <div class="navbar navbar-inverse" role="navigation">
    5. <div class="container">
    6. <div class="navbar-header">
    7. <button type="button" class="navbar-toggle"
    8. data-toggle="collapse" data-target=".navbar-collapse">
    9. <span class="sr-only">Toggle navigationspan>
    10. <span class="icon-bar">span>
    11. <span class="icon-bar">span>
    12. <span class="icon-bar">span>
    13. button>
    14. <a class="navbar-brand" href="/">Flaskya>
    15. div>
    16. <div class="navbar-collapse collapse">
    17. <ul class="nav navbar-nav">
    18. <li><a href="/">Homea>li>
    19. ul>
    20. div>
    21. div>
    22. div>
    23. {% endblock %}
    24. {% block content %}
    25. <div class="container">
    26. {% block page_content %}{% endblock %}
    27. div>
    28. {% endblock %}

    于是当我输入一个无效的url时,页面上会出现我定义的报错:

     并且当我打开控制台检查时,发现状态码为404:

     


    参考资料:

    Flask Web开发:基于Python的Web应用开发实战 ([美] Miguel Grinberg)

  • 相关阅读:
    卡码网语言基础课 |链表的基础操作III
    (22)语义分割--LR-ASPP
    IPV6地址
    ModuleNotFoundError: No module named ‘apt_pkg‘
    如何配置ESB单据集成接口
    nginx配置
    ARM cortex-A7核中断实验 串口显示KEY按键
    How to install the console system of i-search rpa on Centos 7
    [附源码]Python计算机毕业设计宠物领养系统
    仿射密码 affine
  • 原文地址:https://blog.csdn.net/qq_55621259/article/details/126723655