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

相关文章:

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

flask篇之error404(二十七) 首先&#xff0c;我们先进入模板的界面创建一个404的html页面 cd templates vim 404.html404.html的内容如下&#xff1a; <h1>error!!!</h1>在 Flask 应用程序中&#xff0c;当用户访问一个不存在的页面的时候&#xff0c;会出现 4…...

录屏软件自动开启录视频,是如何实现的?

工作要留痕&#xff0c;作为职场人的一项必备技能&#xff0c;因此许多人在做一些重要操作的时候&#xff0c;就会提前开启录屏软件&#xff0c;把操作的每一个步骤进行录制&#xff0c;以避免在出现问题的时候进行检查。当每天都需要在固定的时间点重复某项工作的时候&#xf…...

模拟shell小程序

接下来利用我们当前的知识&#xff0c;撰写一个简单的shell外壳程序。 1.shell原理 shell的原理是实际上就是运行了一个父进程&#xff0c;然后创建出子进程&#xff0c;最后使用进程替换调用&#xff0c;替换成其他程序。 2.shell实现 2.1.死循环 首先一个shell一旦运行起…...

webpack配置全局scss

webpack配置全局scss 效果&#xff1a;a.vue使用index.scss中定义的$mainWidth就无需 import "xxxxxxx/index.scss"文件 src/assets/styles/index.scss $mainWidth: 1280px; $red: red src/views/a.vue .aaa {color: $red; } vue.config.js module.exports {…...

想面试前端工程师,必须掌握哪些知识和技能?【云驻共创】

在当今的数字化时代&#xff0c;前端工程师扮演着至关重要的角色。他们负责设计和开发用户界面&#xff0c;使得用户能够与应用程序或网站进行互动。为了找到最出色的前端工程师&#xff0c;你需要了解哪些技能和知识是必备的&#xff0c;同时也要掌握一些面试技巧和常见的面试…...

京东数据分析(京东数据采集):2023年10月京东平板电视行业品牌销售排行榜

鲸参谋监测的京东平台10月份平板电视市场销售数据已出炉&#xff01; 根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;10月份&#xff0c;京东平台上平板电视的销量将近77万&#xff0c;环比增长约23%&#xff0c;同比则下降约30%&#xff1b;销售额为21亿&#xff0c;环…...

在 Linux 中,可以使用分号 (;) 或者 运算符来执行多条命令

在 Linux 中&#xff0c;你可以使用分号 (;) 或者 && 运算符来执行多条命令。 使用分号 (;) 分隔多条命令&#xff1a; command1 ; command2 这样会依次执行 command1 和 command2&#xff0c;不管前面的命令是否成功。 使用 && 运算符分隔多条命令&#xff1…...

一些必备的 Redis 命令 | Navicat

Redis 是一种快速的内存数据结构存储系统&#xff0c;因其处理键值对的能力而备受推崇。在本文&#xff0c;我们将探索一些不可或缺的 Redis 命令&#xff08;不包括之前介绍过的涉及键的命令&#xff09;&#xff0c;解锁这个强大工具的真正潜力。同时&#xff0c;我们也将了解…...

神经网络常用激活函数详解

&#x1f380;个人主页&#xff1a; https://zhangxiaoshu.blog.csdn.net &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️&#xff0c;如有错误敬请指正! &#x1f495;未来很长&#xff0c;值得我们全力奔赴更美好的生活&…...

UVA11584划分成回文串 Partitioning by Palindromes

划分成回文串 Partitioning by Palindromes 题面翻译 回文子串(palind) 问题描述&#xff1a; 当一个字符串正序和反序是完全相同时&#xff0c;我们称之为“回文串”。例如“racecar”就是一个回文串&#xff0c;而“fastcar”就不是。现在给一个字符串s&#xff0c;把它分…...

第十一章 将对象映射到 XML - 控制流属性的映射形式

文章目录 第十一章 将对象映射到 XML - 控制流属性的映射形式控制流属性的映射形式控制预计属性的可用性禁用映射%XML.Adapter 中的方法 第十一章 将对象映射到 XML - 控制流属性的映射形式 控制流属性的映射形式 对于流属性&#xff0c;XMLPROJECTION 的选项如下&#xff1a…...

torchvision中的标准ResNet50网络结构

注&#xff1a;仅用以记录学习 打印出来的网络结构如下&#xff1a; from torchvision import models model models.resnet50(pretrainedFalse) print("model: ", model) 结构&#xff1a; ResNet((conv1): Conv2d(3, 64, kernel_size(7, 7), stride(2, 2), padd…...

Java 多线程之 synchronized (互拆锁/排他锁/非观锁)

文章目录 一、概述二、使用方法三、测试示例 一、概述 在Java中&#xff0c;synchronized 关键字用于实现线程之间的同步。提供了一种简单而强大的机制来控制多个线程之间的并发访问&#xff0c;确保共享资源的安全性和一致性。它解决了多线程环境中的竞态条件、数据竞争和内存…...

开源vs闭源大模型如何塑造技术的未来?开源模型的优劣势未来发展方向

开源vs闭源大模型如何塑造技术的未来&#xff1f;开源模型的优劣势&未来发展方向 写在最前面一、开源与闭源&#xff1a;定义与历史背景开源和闭源的定义开源大模型&#xff1a;社区驱动的创新 二、开源和闭源的优劣势比较开源大模型&#xff08;瓶颈&#xff09;数据&…...

如何使用无代码系统搭建软件平台?有哪些开源无代码开发平台?

无代码是什么 无代码开发&#xff0c;也称为零代码&#xff08;Zero Code&#xff09;开发&#xff0c;是一种技术概念。无代码开发无需代码基础&#xff0c;适合业务人员、IT开发及其他各类人员使用。他们通过无代码开发平台快速构建应用&#xff0c;并适应各种需求变化&#…...

微信怎么设置自动回复?

自动回复的用处 微信自动回复可以提高沟通效率。当你无法立即回复消息时&#xff0c;设置自动回复可以让对方知道你的情况&#xff0c;并且不会因为长时间没有回复而产生误解或不满。 微信自动回复可以节省时间和精力。如果你经常收到类似的询问或回复&#xff0c;通过设置自动…...

基于Vue3的低代码开发平台——JNPF

目录 一、什么是Vue.js &#xff1f; 二、Jnpf-Web-Vue3 的技术栈介绍 &#xff08;1&#xff09;Vue3.x &#xff08;2&#xff09;Vue-router4.x &#xff08;3&#xff09;Vite4.x &#xff08;4&#xff09;Ant-Design-Vue3.x &#xff08;5&#xff09;TypeScript &#x…...

Thinkphp6 模型 指定字段自增的方法

tp6要使用Db类必须使用门面方式&#xff08;think\facade\Db&#xff09;调用。 use think\facade\Db; 然后&#xff0c;用Db::raw就可以实现指定字段自增了。...

WhatsApp开发客户攻略来袭!还有你不知道的账号解封秘籍!

别人用 WhatsApp 都是订单多到爆单&#xff0c;自己用 WhatsApp 却是订单、客户寥寥无几甚至账号被封&#xff1f;想必外贸从业者在用 WhatsApp 开发客户的时候都有这样的烦恼&#xff0c;今天这篇文章就和大家聊一聊怎么用 WhatsApp 高效地开发客户。 WhatsApp 开发客户的优势…...

Linux C 基于tcp多线程在线聊天室

多线程在线聊天室 概述客户端服务端 概述 客户端实现了判单用户登录结果、防止单回车字符发送、保存和显示历史聊天记录&#xff08;仅自己&#xff09;、退出聊天室功能。   服务端实现了验证用户是否已经存在&#xff08;支持最大64用户连接&#xff09;支持广播用户进入退…...

Hi9204:70V高耐压、0.6A稳定输出,SOT23-6降压芯片—聚能芯半导体

在工业电源、通信设备和电池驱动工具的设计中&#xff0c;电源管理芯片的选择往往决定了整个系统的可靠性边界。今天要聊的智芯半导体Hi9204&#xff0c;是一颗在宽输入电压、小封装、高耐压三个维度上做得相当均衡的异步降压转换器。核心参数一览Hi9204支持5V至70V的宽输入电压…...

新手轻松学i2c:基于快马生成arduino主从通信完整示例与详解

今天想和大家分享一个特别适合嵌入式新手的I2C通信入门实践。作为一个刚接触I2C协议时被各种专业术语绕晕的过来人&#xff0c;我发现在InsCode(快马)平台上通过实际代码示例学习效果特别好。下面就用Arduino主从机通信的例子&#xff0c;带大家轻松理解I2C的核心要点。 I2C协议…...

告别硬件恐惧!用Python-can在树莓派上5分钟搭建你的第一个汽车CAN数据监听器

告别硬件恐惧&#xff01;用Python-can在树莓派上5分钟搭建你的第一个汽车CAN数据监听器 你是否曾经好奇过汽车内部那些神秘的数据流&#xff1f;发动机转速、车速、油耗……这些数据其实都通过CAN总线在车辆内部传递。今天&#xff0c;我们将用树莓派和Python-can库&#xff0…...

SynthCode:神经符号编程平台如何通过六道验证门确保AI生成代码质量

1. 项目概述&#xff1a;当AI写代码时&#xff0c;谁来为质量把关&#xff1f;在过去的几年里&#xff0c;从GitHub Copilot到Cursor&#xff0c;再到Claude Code&#xff0c;AI辅助编程工具已经从一个新奇的概念&#xff0c;变成了许多开发者工作流中不可或缺的一部分。它们确…...

英雄联盟专业录像编辑器:免费开源工具League Director完全指南

英雄联盟专业录像编辑器&#xff1a;免费开源工具League Director完全指南 【免费下载链接】leaguedirector League Director is a tool for staging and recording videos from League of Legends replays 项目地址: https://gitcode.com/gh_mirrors/le/leaguedirector …...

代码注释对于新手及团队的重要性

今天小编与大家一起来讨论代码中的注释对新手、团队的不同作用&#xff0c;这里做一个总结。对于新手帮助理解代码逻辑&#xff1a;有注释的代码能让新手更快的上手&#xff0c;理解代码的各个功能和实现原理&#xff0c;避免学习过程中多走弯路。提高代码可读性&#xff1a;有…...

KH Coder终极指南:3分钟掌握零代码文本分析的秘密武器

KH Coder终极指南&#xff1a;3分钟掌握零代码文本分析的秘密武器 【免费下载链接】khcoder KH Coder: for Quantitative Content Analysis or Text Mining 项目地址: https://gitcode.com/gh_mirrors/kh/khcoder 还在为海量文本数据感到无从下手吗&#xff1f;想从成千…...

别再傻傻分不清了!Spring中setInstanceSupplier和FactoryBean到底怎么选?附实战代码对比

Spring中setInstanceSupplier与FactoryBean的深度抉择指南 引言&#xff1a;当Spring遇上复杂对象创建 在Spring生态中&#xff0c;Bean的创建看似简单&#xff0c;实则暗藏玄机。当我们需要创建那些依赖外部资源、需要动态配置或涉及AOP代理的复杂对象时&#xff0c;仅靠传统的…...

蓝桥杯单片机CT107D平台:用PCF8591的DAC做个简易数字电压表(附完整代码)

蓝桥杯单片机CT107D平台&#xff1a;基于PCF8591的闭环数字电压表设计与实现 在蓝桥杯单片机竞赛中&#xff0c;CT107D开发平台因其丰富的外设和稳定的性能成为热门选择。其中&#xff0c;PCF8591这颗集成了ADC和DAC功能的芯片&#xff0c;常被用于模拟信号处理的经典案例。本文…...

【鸿蒙深度】HarmonyOS 6.0 底层架构全景解析:从微内核到分布式软总线,为什么它能同时跑在手机和PC上?

【鸿蒙深度】HarmonyOS 6.0 底层架构全景解析&#xff1a;从微内核到分布式软总线&#xff0c;为什么它能同时跑在手机和PC上&#xff1f; 摘要&#xff1a;HarmonyOS 6.0&#xff08;API 23&#xff09;的发布标志着鸿蒙正式进入"全场景统一OS"阶段。本文将深入微内…...