📜  处理 Flask 中的 404 错误

📅  最后修改于: 2022-05-13 01:54:19.044000             🧑  作者: Mango

处理 Flask 中的 404 错误

先决条件:在 Flask 中创建简单的应用程序

每当找不到页面时,就会显示 404 错误。也许所有者更改了其 URL 并忘记更改链接,或者他们删除了页面本身。每个站点都需要一个自定义错误页面,以避免用户看到默认的丑陋错误页面。

GeeksforGeeks 还有一个自定义的错误页面。如果我们键入一个 URL,例如
www.geeksforgeeks.org/ajneawnewiaiowjf

默认 404 错误

GeeksForGeeks 自定义错误页面

由于此 URL 不存在,它将显示错误 404 页面。但是错误页面提供了漂亮的布局,帮助用户返回,甚至在特定时间间隔后将他们带到主页。这就是为什么每个网站都需要自定义错误页面。

Flask 为我们提供了一种处理错误并返回自定义错误页面的方法。

为此,我们需要下载并导入flask。通过 CMD 上的以下命令下载烧瓶。

pip install flask

使用 app.py 作为我们的Python文件来管理模板,404.html 是我们将在 404 错误的情况下返回的文件,header.html 是带有网站标题和导航栏的文件。

应用程序.py
Flask 允许我们创建一个Python文件来定义所有的路由和函数。在 app.py 中,我们定义了到主页('/')的路由和错误处理函数,这是一个烧瓶函数,我们将 404 错误作为参数传递。

from flask import Flask, render_template
  
app = Flask(__name__)
  
# app name
@app.errorhandler(404)
  
# inbuilt function which takes error as parameter
def not_found(e):
  
# defining function
  return render_template("404.html")

每当用户打开损坏的链接时,上述Python程序将返回 404.html 文件。

404.html
以下代码从 header.html 导出标题和导航栏。
根据烧瓶,这两个文件都应存储在模板文件夹中。

{% extends "header.html" %}

{% block title %}Page Not Found{% endblock %}
{% block body %}
  
  

Oops! Looks like the page doesn't exist anymore

  

Click HereTo go to the Home Page

   {% endblock %}

5秒后自动跳转到首页

此示例的 app.py 代码与上面相同。
以下代码显示自定义 404 错误页面并开始 5 秒倒计时。
5 秒后,它会将用户重定向回主页。
404.html
以下代码从 header.html 导出标题和导航栏。
根据烧瓶,这两个文件都应存储在模板文件夹中。
5 秒后,用户将自动重定向到主页。



Page Not Found


  
{% extends "header.html" %}
//exporting navbar and header from header.html
{% block body %}
   
 

{% endblock %}      

示例 header.html
这是一个示例 header.html,其中包含一个导航栏,如图所示。
它由引导程序组成。你也可以自己做一个。
对于这一点,请参阅引导文档。




  

  
    
  
    Flask



  

  

  
                       {%block body%}      {%endblock%}   

输出:
输出将是用户导出的带有 header.html 的自定义错误页面。
以下是我的自定义页眉、页脚和 404.html 文件的示例输出。