当前位置: 首页 > 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 错误的两种方式。用户可以根据自己的需求选择一种或多种方式来处理错误。

相关文章:

  • CMS与FullGC
  • 动态规划43(Leetcode91解码方法)
  • JS原生-弹框+阿里巴巴矢量图
  • 华为摄像头通过stm32叠加字符串
  • WPF中Dispatcher对象的用途是什么
  • 分发糖果(贪心算法)
  • VivadoAndTcl: namespace
  • 【Essential C++学习笔记】第四章 基于对象的编程风格
  • SIMULIA-Simpack 2022x新功能介绍
  • 11.16~11.19绘制图表,导入EXCEL中数据,进行拟合
  • 纯JS,RSA,AES,公钥,私钥生成及加解密
  • 基于C++实现循环赛日程表(分治算法)
  • 并发编程之生产者消费者模型
  • Golang环境搭建Win10(简洁版)
  • 栈与队列:设计循环队列
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【刷算法】求1+2+3+...+n
  • CentOS 7 修改主机名
  • dva中组件的懒加载
  • echarts花样作死的坑
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JDK 6和JDK 7中的substring()方法
  • Just for fun——迅速写完快速排序
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • pdf文件如何在线转换为jpg图片
  • React+TypeScript入门
  • Vue UI框架库开发介绍
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • ------- 计算机网络基础
  • 嵌入式文件系统
  • 设计模式(12)迭代器模式(讲解+应用)
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 算法---两个栈实现一个队列
  • 算法系列——算法入门之递归分而治之思想的实现
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 小程序01:wepy框架整合iview webapp UI
  • 用 Swift 编写面向协议的视图
  • 阿里云API、SDK和CLI应用实践方案
  • !!java web学习笔记(一到五)
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #HarmonyOS:基础语法
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #在 README.md 中生成项目目录结构
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (八)c52学习之旅-中断实验
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (九)One-Wire总线-DS18B20
  • (力扣)循环队列的实现与详解(C语言)
  • (一)RocketMQ初步认识
  • (转)nsfocus-绿盟科技笔试题目
  • .net refrector
  • .NET程序员迈向卓越的必由之路
  • .net流程开发平台的一些难点(1)
  • .net中应用SQL缓存(实例使用)