flask中主动抛出异常及统一异常处理代码示例
本文主要介绍的是flask中主动抛出异常及统一异常处理的相关内容,具体如下。
在开发时,后台出现异常 ,但不想把异常显示给用户或者要统一处理异常时,可以使用abort主动抛出异常,再捕获异常返回美化后的页面。
主动抛出异常:
@user.route('/testError') def testError(): print ('testError') abort(404)
使用装饰器errorhandler捕获异常:
@user.errorhandler(404) def error(e): return render_template('exception/404.html')
这样可以自定义异常页面。如果使用error_handler,那么只有本蓝本中的错误才会触发,想要全局异常处理,需要使用app_errorhandler。
将所有异常处理写在一个蓝本中。
#coding:utf-8 #error from flask import Blueprint, render_template, redirect,session,request,abort exception = Blueprint('exception',__name__) @exception.app_errorhandler(404) def error(e): return render_template('exception/404.html')
在view.py中注册蓝本
app.register_blueprint(exception, url_prefix='/error')
这样,所有蓝本触发的异常都可以处理了。
总结
以上就是本文关于flask中主动抛出异常及统一异常处理代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
您可能感兴趣的文章:
- 浅谈flask中的before_request与after_request
- flask中使用蓝图将路由分开写在不同文件实例解析
- flask使用session保存登录状态及拦截未登录请求代码
- CentOS 部署 flask项目的方法
- Vue+Flask实现简单的登录验证跳转的示例代码
- centos 7.0 使用Nginx部署flask应用教程
- python Flask实现restful api service
- Flask实现异步非阻塞请求功能实例解析
相关推荐
-
Flask实现异步非阻塞请求功能实例解析
本文研究的主要是Flask实现异步非阻塞请求功能,具体实现如下. 最近做物联网项目的时候需要搭建一个异步非阻塞的HTTP服务器,经过查找资料,发现可以使用gevent包. 关于gevent Gevent 是一个 Python 并发网络库,它使用了基于 libevent 事件循环的 greenlet 来提供一个高级同步 API.下面是代码示例: from gevent.wsgi import WSGIServer from yourapplication import app http_serve
-
centos 7.0 使用Nginx部署flask应用教程
参考文章://www.jb51.net/article/130989.htm 修改说明:修改nginx配置部分,更换配置文件内容及路径:从ip访问切换到域名访问 前言 最近博主在开发一个小项目,本机的开发环境是python3.6,因为需要部署到服务器(python2.7)的关系,所以研究了一下,网上大部分的教程是部署在Ubuntu上的,博主使用的是centos7.0,大部分的部署其实都是类似的,这篇博文对完完全全的新手可能会有所帮助,对遇到的一些困惑也可以进行描述. 环境准备 python包安装
-
python Flask实现restful api service
一直在用node.js做后端,要逐步涉猎大数据范围,注定绕不过python,因此决定把一些成熟的东西用python来重写,一是开拓思路.通过比较来深入学习python:二是有目标,有动力,希望能持之以恒的坚持下去. 项目介绍 用python语言来写一个restful api service,数据库使用mysql.因为只做后端微服务,并且ORM的实现方式,采用自动生成SQL的方式来完成,因此选择了轻量级的flask作为web框架.如此选择,主要目的是针对中小规模的网络应用,能充分利用关系数据库的种
-
flask使用session保存登录状态及拦截未登录请求代码
本文主要研究的是flask使用session保存登录状态及拦截未登录请求的相关内容,具体介绍如下. 前端请求form: <form action="/user/add" method="get"> <input type="text" name="username" value="111"> <input type="submit" value="
-
Vue+Flask实现简单的登录验证跳转的示例代码
本文介绍了Vue+Flask实现简单的登录验证跳转,分享给大家,具体如下: 文件位置: login.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Login</title> <script type="text/javascript" src="../sta
-
浅谈flask中的before_request与after_request
本文主要是对flask中的before_request与after_request用法做一个简单的分析,具体实例和介绍如下. 使用before_request 和 after_request的方法都非常简单,使用 @app.before_request 或者@app.after_request 修饰期望在请求前或请求后执行的函数即可 示例: @app.before_request def before_request(): if not m_ip_range.is_ip_strict(): re
-
flask中使用蓝图将路由分开写在不同文件实例解析
本文的内容主要是flask中使用蓝图将路由分开写在不同文件的相关介绍,具体如下. Flask 用 蓝图(blueprints) 的概念来在一个应用中或跨应用制作应用组件和支持通用的模式.蓝图很好地简化了大型应用工作的方式,并提供给 Flask 扩展在应用上注册操作的核心方法.一个Blueprint 对象与Flask 应用对象的工作方式很像,但它确实不是一个应用,而是一个描述如何构建或扩展应用的蓝图 . Flask 中的蓝图为这些情况设计: 把一个应用分解为一个蓝图的集合.这对大型应用是理想的.一
-
CentOS 部署 flask项目的方法
最近在学习 python,使用 flask 实现了个个人博客程序,完了想部署到服务器上.因为是新手,一路磕磕绊绊最终把它基本搞定.网上资料对新手感觉都不太友好,都是零零碎碎的,所以我整理了一下,一方面作为我自己的记录,方便以后查阅,另一方面也希望能帮助到跟我一样的新手. 前提 有一个服务器(不然搞毛),购买可以参考优质国外vps推荐 有个人域名(当然,你可以直接使用 IP访问,但有点奇怪不是?购买域名可以去GoDaddy 1.安装git 可以选择 github 或者Bitbucket,当然你也可
-
flask中主动抛出异常及统一异常处理代码示例
本文主要介绍的是flask中主动抛出异常及统一异常处理的相关内容,具体如下. 在开发时,后台出现异常 ,但不想把异常显示给用户或者要统一处理异常时,可以使用abort主动抛出异常,再捕获异常返回美化后的页面. 主动抛出异常: @user.route('/testError') def testError(): print ('testError') abort(404) 使用装饰器errorhandler捕获异常: @user.errorhandler(404) def error(e): re
-
Java中的静态内部类详解及代码示例
1. 什么是静态内部类 在Java中有静态代码块.静态变量.静态方法,当然也有静态类,但Java中的静态类只能是Java的内部类,也称为静态嵌套类.静态内部类的定义如下: public class OuterClass { static class StaticInnerClass { ... } } 在介绍静态内部类之前,首先要弄清楚静态内部类与Java其它内部类的区别. 2. 内部类 什么是内部类?将一个类的定义放在另一个类的内部,就是内部类.Java的内部类主要分为成员内部类.局部内部类.
-
Spring中bean的继承与抽象代码示例
我们在应用Spring时,在一般的设计时,肯定要用的抽象类.那在Spring中怎么样配置这些抽象Bean呢.请看下面: 如果两个bean 之间的配置信息非常相似,可利用继承来减少重复配置工作. 继承是指子bean 定义可从父bean 定义继承部分配置信息,也可覆盖特定的配置信息,或者添加一些配置.使用继承配置可以节省很多的配置工作.在实际应用中,通用配置会被配置成模板,可供子bean 继承. 使用abstract 属性 正如前面所介绍的,通用的配置会被配置成模板,而模板不需要实例化,仅仅作为子b
-
Java中Volatile关键字详解及代码示例
一.基本概念 先补充一下概念:Java内存模型中的可见性.原子性和有序性. 可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉.通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情.为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制. 可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的.也就是一个线程修改的结果.另一个线程马上就能看到.比如:用volatile修饰的变量,就会具有可见性.volatile修饰的
-
Python中对象的引用与复制代码示例
可以说Python没有赋值,只有引用.你这样相当于创建了一个引用自身的结构,所以导致了无限循环.为了理解这个问题,有个基本概念需要搞清楚. Python没有「变量」,我们平时所说的变量其实只是「标签」,是引用. python中,"a=b"表示的是对象a引用对象b,对象a本身没有单独分配内存空间(重要:不是复制!),它指向计算机中存储对象b的内存.因此,要想将一个对象复制为另一个对象,不能简单地用等号操作,要使用其它的方法.如序列类的对象是(列表.元组)要使用切片操作符(即':')来做复
-
Java提取2个集合中的相同和不同元素代码示例
本文分享的示例代码实现提取2个集合中相同和不同的元素 此处需要使用Collection集合所提供的一个方法:removeAll(Cellection list),removeAll方法用于从列表中移除指定collection中包含的所有元素. 语法 removeAll(Collection<?> c) c:包含从列表中移除元素的collection对象. 该方法返回值为boolean对象,如果List集合对象由于调用removeAll方法而发生更改,则返回true,否则返回false.实现代码
-
java实现统一异常处理的示例
对于Dao层 和Service产生的异常要一直网上抛,直至Controller层,但是对于controller层不能处理的异常也不能直接抛给前端. 为什么不能在service处理异常? 答:Service 层往往涉及数据库事务,出现异常同样不适合捕获,否则事务无法自动回滚.此外 Service 层涉及业务逻辑,有些业务逻辑执行中遇到业务异常,可能需要在异常后转入分支业务流程.如果业务异常都被框架捕获了,业务功能就会不正常.[引用:极客时间的Java业务开发常见错误100例] 实现统一异常处理:
-
php中的mongodb select常用操作代码示例
前面说到了mongodb安装,配置,集群,以及php的插入与更新等,请参考:mongodb. 下面说一下,mongodb select的常用操作 测试数据: 复制代码 代码如下: { "_id" : 1, "title" : "红楼梦", "auther" : "曹雪芹", "typeColumn" : "test", "money" : 80,
-
Python中捕捉详细异常信息的代码示例
大家在开发的过程中可能时常碰到一个需求,需要把Python的异常信息输出到日志文件中. 网上的办法都不太实用,下面介绍一种实用的,从Python 2.7源码中扣出来的. 废话不说 直接上代码,代码不多,注释比较多而已. import sys, traceback traceback_template = '''Traceback (most recent call last): File "%(filename)s", line %(lineno)s, in %(name)s %(ty
-
Android应用开发中使用GridView网格布局的代码示例
基本布局演示 1. 定义包含GridView 的 main.xmk <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fi
随机推荐
- angularjs 源码解析之scope
- 详解Nginx 出现 403 Forbidden 的解决办法
- Dispatch Source Timer的使用及注意事项介绍
- java.sql.SQLException: 内部错误: Unable to construct a Datum from the specified input
- Android编程布局(Layout)之AbsoluteLayout用法实例分析
- php+mysql 实现身份验证代码
- 浅谈python多线程和队列管理shell程序
- AJAX聊天室V1.0发布
- jQuery实现平滑滚动的标签分栏切换效果
- Ruby Gems更换淘宝源方法
- 让你的insert操作速度增加1000倍的方法
- jQuery点击头像上传并预览图片
- jQuery实现CheckBox全选、全不选功能
- 使用jQuery获取radio/checkbox组的值的代码收集
- Java4Android开发教程(五)java的基本数据类型特征
- 解析C#中的装箱与拆箱的详解
- java集合继承关系图分享
- 微信小程序 动画的简单实例
- 学习php笔记 字符串处理
- 微信小程序获取手机系统信息的方法【附源码下载】