flask_restful的使用方法
一 安装:
pip install flask_restrul
二 初始化并注册路由
# run.py
from flask_restful import Api
...
api = Api(app)
api.add_resource(Test, '/test/')
...
三 编写资源类,公司项目已删除无关代码
用到了 请求参数解析、自定义参数解析错误、自定义验证函数知识点
# 响应数据格式
def make_json_data(status, msg, data=None, **kwargs):
json_data = kwargs or {}
json_data.update({"status": status, "msg": msg, "data": data})
return json_data # 自定义请求参数解析错误 可参照源码。过程:请求参数解析中如果抛出异常了,会执行flask_restful中的abort,然后返回一个json错误,一般情况我们都会定义自己的json格式数据返回给前端,这个时候,我们就要定制abort,让它返回我们想要的json数据,这里没有使用help属性值,如果大家有更好的办法,望留言
def custom_abort(http_status_code, **kwargs):
try:
abort(http_status_code)
except HTTPException as e:
if len(kwargs):
current_app.logger.error('request parameter error')
e.data = make_json_data(1, '请求参数错误')
raise flask_restful.abort = custom_abort
# 自定义数据验证,一般情况我们都要对请求参数做验证,可以通过参数请求中type属性定义,这里的错误是默认错误,会被help覆盖
def __custom_page_verify(value):
try:
int(value)
except:
raise ValueError('请求参数错误')
if int(value) <= 0:
raise ValueError('请求参数错误')
else:
return int(value)
class Test(Resource):
decorators = [login_required]
def __init__(self):
# 请求解析
# 在请求解析中声明的参数如果没有在请求本身设置的话将默认为 None,请求参数未添加到reqparse中将会被忽略
# 请求参数有多个值:action=append
# 参数别名
# 参数位置
# 继承解析
self.reqparse = reqparse.RequestParser()
super(Test, self).__init__() def delete(self, id):
try:
req_parse = self.reqparse.copy() #继承
req_parse.add_argument('loginuser', required=True, type=__custom_page_verify, location='json', help='请求参数错误')
req_args = req_parse.parse_args()
loginuser = req_args['loginuser']return make_json_data(0, "")
except:
return make_json_data('', '删除设计策略失败')
flask_restful的使用方法的更多相关文章
- Flask + vue 前后端分离的 二手书App
一个Flask + vue 前后端分离的 二手书App 效果展示: https://blog.csdn.net/qq_42239520/article/details/88534955 所用技术清单 ...
- javaSE27天复习总结
JAVA学习总结 2 第一天 2 1:计算机概述(了解) 2 (1)计算机 2 (2)计算机硬件 2 (3)计算机软件 2 (4)软件开发(理解) 2 (5) ...
- flask插件系列之flask_restful设计API
前言 flask框架默认的路由和视图函数映射规则是通过在视图函数上直接添加路由装饰器来实现的,这使得路由和视图函数的对应关系变得清晰,但对于统一的API开发就变得不怎么美妙了,尤其是当路由接口足够多的 ...
- flask_restful(转载)
flask插件系列之flask_restful设计API 前言 flask框架默认的路由和视图函数映射规则是通过在视图函数上直接添加路由装饰器来实现的,这使得路由和视图函数的对应关系变得清晰,但对于统 ...
- Flask_restful 插件实战笔记——基本概念与使用
最近在Resetful接口设计上想法还是挺多的,也实现了一些需求!想着整理下Flask_restful插件的基本知识,方便日后的复习! 官方地址:https://flask-restful. ...
- Mock Server之flask_restful(python+flask)
一.结构设计 上一篇,写了Mock Server的基础实现与被测系统的对接 当我们要mock 的 api越来越多的时候,路由与相关的方法都堆在app.py中就不合适了,不可拔插,可读性也比较差,因此要 ...
- flask_restful实现文件下载功能
环境:前后端完全分离,后端flask_restful,前端vue from flask_restful import reqparse, Resource from flask import send ...
- mapreduce多文件输出的两方法
mapreduce多文件输出的两方法 package duogemap; import java.io.IOException; import org.apache.hadoop.conf ...
- 【.net 深呼吸】细说CodeDom(6):方法参数
本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...
随机推荐
- Ubuntu 16.04.5安装docker
一:安装Ubuntu 16.04.5 下载地址: 1.magnet:?xt=urn:btih:C3C5FE05C329AE51C6ECA464F6B30BA0A457B2CA 2.http://m ...
- 多行select中的数据展示和单个删除
/** 删除多选select中 的某个值,公共方法 只适用于同级节点下只有一个select的情况 v 此按钮,this _id,option中的value的name属性 _name,option中的t ...
- 利用COOKIE保存历史浏览商品的一个简单思路
<?php //如是COOKIE 里面不为空,则往里面增加一个商品ID if (!empty($_COOKIE['SHOP']['history'])){ //取得COOKIE里面的值,并用逗号 ...
- js 常用js正则表达式大全
一.校验数字的js正则表达式 1 数字:^[0-9]*$ 2 n位的数字:^d{n}$ 3 至少n位的数字:^d{n,}$ 4 m-n位的数字:^d{m,n}$ 5 ...
- JAVA数据结构--哈希表的实现(分离链接法)
哈希表(散列)的定义 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度 ...
- HDFS 删除大量文件
hdfs dfs -find <path> | xargs -n 1000 hdfs dfs -rm -skipTrash
- 用servlet进行用户名和密码校验01
用servlet进行用户名和密码校验01 编写一个servlet进行用户名和密码校验,获取登录页面的用户名密码,并显示出来 1.工作目录结构 2.首先是一个login.html,包含非常简单的登录表单 ...
- SpringCloud---消息驱动的微服务---Spring Cloud Stream
1.概述 1.1 Spring Cloud Stream:用来 为微服务应用 构建 消息驱动能力的框架: 可基于SpringBoot来创建独立.可用于生产的Spring应用程序: 使用Sp ...
- (转)MySQL性能调优my.cnf详解
MySQL性能调优my.cnf详解 https://blog.linuxeye.cn/379.html http://blog.csdn.net/orichisonic/article/details ...
- Oracle Schema
1.这是Schema的definition: A schema is a collection of database objects (used by a user.) Schema objects ...