Request的中断和ErrorHandler实例解析
概述
在view函数中,如果需要中断request,可以使用abort(500)或者直接raise exception。当然我们还需要返回一个出错信息给前端,所以需要定制一下ErrorHandler。一般只需要两个个handler即可,一个是404错误,一个是500一类的服务器端错误。当然也可以自定义错误。
代码清单
下面是一份示例代码,main是一个蓝本或者app,发生404错误或500错误,会返回一个Json对象给请求段。
from flask import jsonify from . import main @main.errorhandler(404) def error_404(error): """这个handler可以catch住所有abort(404)以及找不到对应router的处理请求""" response = dict(status=0, message="404 Not Found") return jsonify(response), 404 @main.errorhandler(Exception) def error_500(error): """这个handler可以catch住所有的abort(500)和raise exeception.""" response = dict(status=0, message="500 Error") return jsonify(response), 400 class MyError(Exception): """自定义错误类""" pass @main.errorhandler(MyError) def MyErrorHandle(error): response = dict(status=0, message="400 Error") return jsonify(response), 400
蓝本的错误处理
在蓝本中编写错误处理程序有点不同,如果使用errorhandler修饰器,那么只有蓝本中的错误才会触发。如果想注册全局的错误处理程序,要用app_errorhandler。
例如:
from . import auth @auth.app_errorhandler(404) def error_404(error): response = dict(status=0, message="404 Not Found") return jsonify(response), 404
总结
以上就是本文关于Request的中断和ErrorHandler实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
您可能感兴趣的文章:
- Python使用requests发送POST请求实例代码
- Python使用requests及BeautifulSoup构建爬虫实例代码
- Python3.6安装及引入Requests库的实现方法
- python中requests和https使用简单示例
- Python爬虫通过替换http request header来欺骗浏览器实现登录功能
- 用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
- python中requests库session对象的妙用详解
- python中requests使用代理proxies方法介绍
相关推荐
-
Python使用requests及BeautifulSoup构建爬虫实例代码
本文研究的主要是Python使用requests及BeautifulSoup构建一个网络爬虫,具体步骤如下. 功能说明 在Python下面可使用requests模块请求某个url获取响应的html文件,接着使用BeautifulSoup解析某个html. 案例 假设我要http://maoyan.com/board/4猫眼电影的top100电影的相关信息,如下截图: 获取电影的标题及url. 安装requests和BeautifulSoup 使用pip工具安装这两个工具. pip install
-
python中requests库session对象的妙用详解
在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息. 妙用1 requests库的session对象能够帮我们跨请求保持某些参数,也会在同一个session实例发出的所有请求之间保持cookies. 举个栗子,跨请求保持cookies,在命令行上输入下面命令: # 创建一个session对象 s = requests.Session() # 用session对象发出get请求,设置cookies s.get('http://ht
-
Python3.6安装及引入Requests库的实现方法
本博客可能没有那么规范,环境之类的配置.只是让你直接开始编程写python. 至于各种配置网络上有多种方法. 本文仅代表我的观点的一种方法. 电脑环境:win10 64位 第一步:下载python. 网址:https://www.python.org/downloads/windows/ 点击并打开,我下载的是最新Python3.6.0版本. 打开后界面如下,根据你的电脑和你的条件选择你需要的版本. x86适合32位操作系统:x86-64适合64位操作系统. web-based installe
-
Python使用requests发送POST请求实例代码
本文研究的主要是Python使用requests发送POST请求的相关内容,具体介绍如下. 一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样: 请求行 请求报头 消息主体 HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必须使用什么编码方式.服务端通过是根据请求头中的Content-Type字段来获知请求中的消息主体是用何种方式进行编码,再对消息主体进行解析.具体的编码方式包括: application/x-www-form-urlencode
-
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
以豆瓣为例,访问https://www.douban.com/contacts/list 来查看自己关注的人,要登录才能查看. 如果用requests.get()方法获取这个http,没登录只能抓取回一个登录界面,所以我们要用Python登录网站才能抓取想要的网页. 一个简便的方法就是自己在浏览器上登录好,然后通过下图方法(Chrome为例),找到自己的Cookie和User-Agent,然后发送request时用这复制来的header替换掉待发送的request以达到登录的目的,server端
-
python中requests使用代理proxies方法介绍
学习网络爬虫难免遇到使用代理的情况,下面介绍一下如何使用requests设置代理: 如果需要使用代理,你可以通过为任意请求方法提供 proxies 参数来配置单个请求: import requests proxies = { "http": "http://10.10.1.10:3128", "https": "http://10.10.1.10:1080", } requests.get("http://examp
-
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
本文使用python的第三方模块requests爬取王者荣耀所有英雄的图片,并将图片按每个英雄为一个目录存入文件夹中,方便用作桌面壁纸 下面时具体的代码,已通过python3.6测试,可以成功运行: 对于所要爬取的网页连接可以通过王者荣耀官网找到, # -*- coding: utf-8 -*- """ Created on Wed Dec 13 13:49:52 2017 @author:KillerTwo """ import request
-
python中requests和https使用简单示例
requests 是一个非常小巧全面的库,应用它可以很容易写出与服务器进行交互的程序,今天遇到了一个问题,与服务器交互时,url都是https开头的,都进行了ssl加密处理,这样一来,就不能像之前那样访问http开头的url那样进行处理了. 查了一些资料,可以配置ssl进行验证的文件,方式如下 res = requests.get('https://127.0.0.1:5503/login',cert=('./server.crt', './server.key.unsecure')) 可运行后
-
Request的中断和ErrorHandler实例解析
概述 在view函数中,如果需要中断request,可以使用abort(500)或者直接raise exception.当然我们还需要返回一个出错信息给前端,所以需要定制一下ErrorHandler.一般只需要两个个handler即可,一个是404错误,一个是500一类的服务器端错误.当然也可以自定义错误. 代码清单 下面是一份示例代码,main是一个蓝本或者app,发生404错误或500错误,会返回一个Json对象给请求段. from flask import jsonify from . i
-
jsp基于XML实现用户登录与注册的实例解析(附源码)
简单的基于xml做数据库的登录与注册 主题介绍: 1.xml的读取和存储,主要是用到dom4j技术,(网络中的文件存储路径采用classLoader) 文件的读取和存储,写了一个工厂类 public class DocumentFactory { private static Document dom=null;//需要共享一个dom,所以需要设置为static private static String name="user.xml"; private static String f
-
Java Web开发入门书籍实例解析(总结一)
从事Java Web开发这一段时间来,对Java 面向对象的思想和MVC开发模式可以说已经熟悉了.我当前参与的项目使用的框架是Spring.SpringMVC.Hibernate.下面我们小编给大家整理一篇教程帮助大家学习javaweb相关知识,感兴趣的朋友可以参考下. 一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 1.静态web资源(如html 页面):指w
-
Default Methods实例解析
Oracle官网是这样介绍默认方法的,使用默认方法,可以达到往接口里面增加新的功能,而且保持与老版本代码兼容,也就是原来的实现类可以不需要被动修改.所以,默认方法位置是在接口里面:默认方法具有实现,不会强制具体类来现.Java 8要充分利用Lambda,需要增强大量的类库,但是又希望做到兼容性,只能用默认方法这个大招. 默认方法 默认方法与普通的接口方法相比,最前面增加default关键字,参数列表之后接大括号,实现该方法,再后面没有分号. 如果翻看jdk源码的interface,会发现多了de
-
JS 拦截全局ajax请求实例解析
你是否有过下面的需求:需要给所有ajax请求添加统一签名.需要统计某个接口被请求的次数.需要限制http请求的方法必须为get或post.需要分析别人网络协议等等,那么如何做?想想,如果能够拦截所有ajax请求,那么问题就会变的很简单!
-
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
SmartUpload组件只有5个分别是:File.Files.Request.SmartUpload.SmartUploadException类,其中,File代表用户上传的文件,Files代表用户上传的多个文件,Request相当于HttpServletRequest的功能,用于获取表单数据,SmartUpload是最核心的类,负责文件上传下载,SmartUploadException是自定义异常. SmartUpload的基本使用思路如下: jsp前台代码表单提交 <form act
-
flask中使用蓝图将路由分开写在不同文件实例解析
本文的内容主要是flask中使用蓝图将路由分开写在不同文件的相关介绍,具体如下. Flask 用 蓝图(blueprints) 的概念来在一个应用中或跨应用制作应用组件和支持通用的模式.蓝图很好地简化了大型应用工作的方式,并提供给 Flask 扩展在应用上注册操作的核心方法.一个Blueprint 对象与Flask 应用对象的工作方式很像,但它确实不是一个应用,而是一个描述如何构建或扩展应用的蓝图 . Flask 中的蓝图为这些情况设计: 把一个应用分解为一个蓝图的集合.这对大型应用是理想的.一
-
Flask实现异步非阻塞请求功能实例解析
本文研究的主要是Flask实现异步非阻塞请求功能,具体实现如下. 最近做物联网项目的时候需要搭建一个异步非阻塞的HTTP服务器,经过查找资料,发现可以使用gevent包. 关于gevent Gevent 是一个 Python 并发网络库,它使用了基于 libevent 事件循环的 greenlet 来提供一个高级同步 API.下面是代码示例: from gevent.wsgi import WSGIServer from yourapplication import app http_serve
-
spring学习之@SessionAttributes实例解析
本文研究的主要是spring学习之@SessionAttributes的相关内容,具体如下. 一.@ModelAttribute 在默认情况下,ModelMap 中的属性作用域是 request 级别是,也就是说,当本次请求结束后,ModelMap中的属性将销毁.如果希望在多个请求中共享 ModelMap 中的属性,必须将其属性转存到 session 中,这样ModelMap 的属性才可以被跨请求访问. spring 允许我们有选择地指定 ModelMap 中的哪些属性需要转存到 session
-
django在接受post请求时显示403forbidden实例解析
本文研究的主要是django在接受post请求时显示403forbidden时的处理方法,具体代码如下. 最近在做一个项目需要用到Django框架 在测试Django的时候发现一个问题,就是按照一般教程设置好URL的mapping之后,使用get请求总能得到正确的回应,但是在使用post请求时,却根本无法得到请求,会显示403forbidden: Starting development server at http://127.0.0.1:8000/ Quit the server with
随机推荐
- jquery的$(document).ready()和onload的加载顺序
- Angular发布1.5正式版,专注于向Angular 2的过渡
- iOS App中数据管理框架Core Data的基本数据操作教程
- 常用Javascript函数与原型功能收藏(必看篇)
- Bootstrap企业网站实战项目4
- js获取当前时间(昨天、今天、明天)
- php array_udiff_assoc 计算两个数组的差集实例
- PHP脚本的10个技巧(6)
- python多线程threading.Lock锁用法实例
- C/C++ 多线程的学习心得总结
- php文件缓存类用法实例分析
- nodejs个人博客开发第六步 数据分页
- 万圣节是什么节日 2014万圣节是几月几日
- JavaScript面向对象的实现方法小结
- vsftpd的530 Login incorrect错误解决方法 vsftpd登录错误
- 使用Python写CUDA程序的方法
- Android使用Intent实现页面跳转
- Android判断手机是否是小米MIUI系统的方法
- Android WebView 详解及简单实例
- Android清除工程中无用资源文件的两种方法