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

福州专门做网站泸州网站seo

福州专门做网站,泸州网站seo,旅游网站 系统,idc网站模板 dedePython Flask 在网页应用程序中处理错误和异常 Python Flask 在网页应用程序中处理错误和异常 Python Flask 在网页应用程序中处理错误和异常 在我们所有的代码示例中,我们没有注意如何处理用户在浏览器中输入错误的URL或向我们的应用程序发送错误的参数集的情况。…

Python Flask 在网页应用程序中处理错误和异常

  • Python Flask 在网页应用程序中处理错误和异常

Python Flask 在网页应用程序中处理错误和异常

在我们所有的代码示例中,我们没有注意如何处理用户在浏览器中输入错误的URL或向我们的应用程序发送错误的参数集的情况。这不是设计意图,但目的是首先关注网页应用程序的关键组件。网页框架的美妙之处在于,它们通常默认支持错误处理。如果发生任何错误,将自动返回相应的状态代码。错误代码被很好地定义为HTTP协议的一部分。例如,从400到499的错误代码表示客户端请求的错误,而从500到599的错误代码则表示服务器在执行请求时出现问题。下面总结了一些常见的错误:

错误代码名字描述
400Bad Request (坏请求)这个错误表明了或者 URL 或者 请求内容有错误
401Unauthorized (未认证)当用户名或密码错误或没有提供时,会出现这个错误
403Forbidden (禁止)这个错误表明一个用户访问了他不被允许访问的资源
404Not Found (未发现)当客户端尝试访问不存在的资源时,会返回这个错误。通常情况下是 URL 错了。
500Interanl Server Error(服务器内部错误)这个错误表明了请求是正确的,但是在服务器内部出现了错误。

https://httpstatuses.com/ 这个网站上有完整的错误列表。

Flask 框架还附带了一个错误处理框架。在处理客户端请求时,如果我们的程序崩溃,默认情况下会返回 500 Internal Server Error。如果客户端请求的 URL 未映射到任何Python函数,Flask 将向客户端返回 404 Not Found错误。这些不同的错误类型被实现为HTTPException 类的子类,该类是 Flask 库的一部分。

如果我们想用自定义行为或自定义消息处理这些错误或异常,我们可以向 Flask 应用程序注册我们的处理程序。请注意,错误处理程序是 Flask 中的一个函数,仅在发生错误时触发,我们可以将特定的错误或通用异常与我们的处理程序相关联。我们构建了一个示例代码来从较高的层次说明这个概念。首先,我们将演示一个简单的网页应用程序,它有两个函数(hellogreeting)来处理两个URL,如下面的示例代码所示:

# 第一部分
import json
from flask import Flask, render_template, abort
from werkzeug.exceptions import HTTPExceptionapp = Flask(__name__)@app.route('/')
def hello():return "Hello, World!"@app.route('/greeting')
def greeting():x = 10 / 0return "你不会看到这个提示。"

为了处理错误,我们将使用 errorHandler 装饰器针对应用程序实例注册我们的处理程序。对于我们的示例代码(如下所示),我们针对 Flask 应用程序的错误代码 404 注册了一个 page_not_found 处理程序。对于错误代码 500 ,我们注册了一个 internal error 函数作为错误处理程序。最后,我们为 HTTPException 类注册了 generic_handler。此通用处理程序将捕获 404500 以外的错误或异常。下面显示了一个包含所有三个处理程序的示例代码:

# 第二部分
@app.errorhandler(404)
def page_not_found(error):return render_template('error404.html'), 404@app.errorhandler(500)
def internal_server_error(error):return render_template('error500.html'), 500@app.errorhandler(HTTPException)
def generic_error_handler(error):error_detail = json.dumps({"code": error.code,"name": error.name,"description": error.description,})return render_template("error.html", err_msg=error_detail), error.code

为了便于说明,我们还编写了带有自定义消息的基本 Jinja 模板:error404.htmlerror500.htmlerror.htmlerror404.htmlerror500.html 模板使用的是模板中硬编码的消息。但是,error.html 模板需要来自网页服务器的自定义消息。为了测试这些示例应用程序,我们将通过浏览器或 curl 实用程序请求以下内容:

  • GET http://localhost:5000/:我们期望一个普通的回应;
  • GET http://localhost:5000/hello:我们期望一个 404 错误。这是因为没有 Python 程序映射到 /hello 网址,Flask 应用程序会渲染 error404.html
  • GET http://localhost:5000/greeting:我们期望一个 500 错误。这是因为我们尝试用零除一个数,然后触发了 ZeroDevisionError 异常。因为这是一个服务端错误,它会触发 internal_server_error 处理函数,这个函数会渲染 error500.html
  • POST http://localhost:5000/:为了模拟通用处理程序的角色,我们将发送一个触发 404500 以外的错误代码的请求。这很容易实现,只需发送一个期待 GET 请求的 URL 的 POST 请求,在这种情况下,服务器将引发 405 错误(对于不受支持的HTTP方法)。我们的应用程序中没有专门针对错误代码 405 的错误处理程序,但我们已经注册了一个带有 HTTPException 的通用处理程序。此通用处理程序将处理此错误并呈现通用 error.html 模板。

<完>

http://www.dtcms.com/wzjs/443172.html

相关文章:

  • 在线做春节网站哪里可以引流到精准客户呢
  • 小程序的网址南京网络优化培训
  • 做网站好平台化搜索引擎营销的作用
  • 做网站wordpress百度分公司
  • 合肥做网站排名金蝶进销存免费版
  • 网站上传附件目录格式360免费建站系统
  • 网站的做网站公司网页设计的流程
  • fireworks8做网站百度seo权重
  • 做的网站为什么手机上搜不到精准客源推广引流
  • 哪个网站做图书广告好百度客服24小时人工服务
  • 微信app下载安装官方版2022我是seo关键词
  • eclipse用来做网站前端志鸿优化设计官网
  • 商丘网站建设域名ip查询入口
  • 在discuz做网站企业营销推广
  • 网站建设费用报价单西安seo关键词推广
  • 自己做的网站 kindle2023年6月份又封城了
  • 专做智能化施工的网站北京seo排名技术
  • 苏州网站建设问问q778925409强涵曲靖seo
  • 勉费申请做网站晋城seo
  • 深圳网站网站开发产品如何做市场推广
  • 网站开发工具hb百度关键词优化多久上首页
  • 杭州注册公司流程快手seo关键词优化
  • 建立一个同城网站要怎么做网站搜索引擎优化情况怎么写
  • 1688网站上自己做模版信息流推广的竞价机制是
  • 成都网站建设 培训学校app推广多少钱一单
  • 网站建设公司天成口碑营销策略
  • 贵阳企业网站建设太原今日新闻最新头条
  • 大观网站建设最新疫情消息
  • 杭州做网站的企业自动推广引流app
  • 流量型网站 cms宁德市古田县