当前位置: 首页 > news >正文

Python武器库开发-flask篇之error404(二十七)

flask篇之error404(二十七)

首先,我们先进入模板的界面创建一个404的html页面

cd templates 
vim 404.html

在这里插入图片描述

404.html的内容如下:

<h1>error!!!</h1>

在 Flask 应用程序中,当用户访问一个不存在的页面的时候,会出现 404 错误。为了更好地处理这些错误,Flask 提供了以下两种方式:

  1. 使用 Flask 提供的错误处理机制

Flask 提供了一个 @app.errorhandler 装饰器,可以用于处理应用程序的错误。当应用程序出现错误时,可以使用该装饰器来显示一个自定义的错误页面。

以下是一个处理 404 错误的示例代码:

#!/usr/bin/env python3
from flask import Flask, render_templateapp = Flask(__name__)@app.errorhandler(404)
def page_not_found(e):return render_template('404.html'), 404if __name__ == '__main__':app.run(debug=True)

在上面的代码中,@app.errorhandler(404) 装饰器用于处理 404 错误,render_template() 函数用于渲染一个自定义的模板页面并返回给用户。

我们保存代码,运行该脚本:

python3 app.py

在这里插入图片描述

任意浏览器输入URL http://127.0.0.1:5000/(任意错误的参数),则浏览器返回给我们一个error!!!的自定义的响应界面

在这里插入图片描述

  1. 使用 Flask-Bootstrap 扩展

Flask-Bootstrap 是一个为 Flask 提供前端框架 Bootstrap 支持的扩展。它提供了一个 bootstrap/base.html 模板文件,该文件用于渲染网页的基本结构,并包含了一些常用的 Bootstrap 样式和 JavaScript 库。

可以通过直接继承 bootstrap/base.html 模板文件来创建自定义的错误页面,如下所示:

{% extends 'bootstrap/base.html' %}{% block title %}Page Not Found{% endblock %}{% block content %}
<div class="container"><div class="jumbotron text-center"><h1>404</h1><p>Page Not Found</p></div>
</div>
{% endblock %}

在上面的代码中,extends 关键字用于继承 bootstrap/base.html 模板文件,title 块用于设置网页的标题,content 块用于设置网页的内容。

然后,在应用程序中,可以使用以下代码来注册处理 404 错误的页面:

#!/usr/bin/env python3
from flask import Flask, render_template
from flask_bootstrap import Bootstrapapp = Flask(__name__)
bootstrap = Bootstrap(app)@app.errorhandler(404)
def page_not_found(e):return render_template('404.html'), 404if __name__ == '__main__':app.run(debug=True)

以上就是处理 Flask 中 404 错误的两种方式。用户可以根据自己的需求选择一种或多种方式来处理错误。

http://www.lryc.cn/news/239159.html

相关文章:

  • 录屏软件自动开启录视频,是如何实现的?
  • 模拟shell小程序
  • webpack配置全局scss
  • 想面试前端工程师,必须掌握哪些知识和技能?【云驻共创】
  • 京东数据分析(京东数据采集):2023年10月京东平板电视行业品牌销售排行榜
  • 在 Linux 中,可以使用分号 (;) 或者 运算符来执行多条命令
  • 一些必备的 Redis 命令 | Navicat
  • 神经网络常用激活函数详解
  • UVA11584划分成回文串 Partitioning by Palindromes
  • 第十一章 将对象映射到 XML - 控制流属性的映射形式
  • torchvision中的标准ResNet50网络结构
  • Java 多线程之 synchronized (互拆锁/排他锁/非观锁)
  • 开源vs闭源大模型如何塑造技术的未来?开源模型的优劣势未来发展方向
  • 如何使用无代码系统搭建软件平台?有哪些开源无代码开发平台?
  • 微信怎么设置自动回复?
  • 基于Vue3的低代码开发平台——JNPF
  • Thinkphp6 模型 指定字段自增的方法
  • WhatsApp开发客户攻略来袭!还有你不知道的账号解封秘籍!
  • Linux C 基于tcp多线程在线聊天室
  • 代码随想录算法训练营第23期day60|84.柱状图中最大的矩形
  • vue动态获取目录结构进行配置静态路由
  • 产品工程师工作的职责十篇(合集)
  • 图片降噪软件 Topaz DeNoise AI mac中文版功能
  • 【开源】基于Vue.js的车险自助理赔系统的设计和实现
  • 2023年亚太杯数学建模思路 - 案例:粒子群算法
  • Android:Google三方库之Firebase集成详细步骤(一)
  • 企业如何选择一款高效的ETL工具
  • vr编辑器可以解决教育教学中的哪些问题
  • 国外聊天IM — Sendbird
  • Django与Ajax