flask-restful使用总结


Posted in Python onDecember 04, 2018

Flask-RESTful是一个用于快速创建RESTful API接口的Flask扩展。使用Flask-RESTful可以很快速方便地创建一个RESTful风格的接口应用程序。

1、安装

pip install flask_restful

2、全部代码

from flask import Flask
from flask_restful import reqparse, abort, Api, Resource

app = Flask(__name__)
api = Api(app)

TODOS = {
  'todo1': {'task': 'build'},
  'todo2': {'task': 'bui2'},
  'todo3': {'task': 'bui3'}
}

parser = reqparse.RequestParser()
parser.add_argument('task')

class Todo(Resource):
  def get(self, todo_id):
    return TODOS[todo_id]

  def delete(self, todo_id):
    del TODOS[todo_id]
    return '', 204

  def put(self, todo_id):
    args = parser.parse_args()
    task = {'task': args['task']}
    TODOS[todo_id] = task
    return task, 201


class TodoList(Resource):
  def get(self):
    return TODOS


api.add_resource(TodoList, '/todos')
api.add_resource(Todo, '/todos/<todo_id>')

if __name__ == '__main__':
  app.run(debug=True)

3、代码说明

1). 初始化

在当前程序初始化一个flask-restful的api实例:

api = Api(app)

2). 定义资源类

资源类是restful接口的具体实现,需要继承Resource类。在类中可以定义get、post等符合restful规范的接口。

class Todo(Resource):
  def get(self, todo_id):
    return TODOS[todo_id]

  def delete(self, todo_id):
    del TODOS[todo_id]
    return '', 204

  def put(self, todo_id):
    args = parser.parse_args()
    task = {'task': args['task']}
    TODOS[todo_id] = task
    return task, 201

3). 参数解析

虽然 Flask 提供了简单的方法访问请求数据, 但是对于表单数据处理还是比较麻烦. Flask-RESTful 提供了 reqparse 一种类似 argparse 参数解析机制以简化参数处理.

parser = reqparse.RequestParser(): reqparse使用RequestParser() 可以从 flask.Request.values,以及 flask.Request.json 解析值。这里创建了一个解析对象parser。

parser.add_argument('task'):向parser对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项。

parser.parse_args():调用parse_args()方法进行解析,解析成功之后即可使用。

4). add_argument扩展

对于必传的参数,可以设置required=True

parser.add_argument('name', type=str, required=True,
help="Name cannot be blank!")

传多个值,使用 action='append'

parser.add_argument('name', type=str, action='append')

使用:

curl http://api.example.com -d "Name=bob" -d "Name=sue" -d "Name=joe"

获取的参数为:

args = parser.parse_args()
args['name']  # ['bob', 'sue', 'joe']

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之使用Python操作数据库(1)
Nov 25 Python
深入讨论Python函数的参数的默认值所引发的问题的原因
Mar 30 Python
Python3.4 splinter(模拟填写表单)使用方法
Oct 13 Python
Python数据可视化:饼状图的实例讲解
Dec 07 Python
python实现视频读取和转化图片
Dec 10 Python
Python实现仿射密码的思路详解
Apr 23 Python
pycharm 对代码做静态检查操作
Jun 09 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
Jul 02 Python
区分python中的进程与线程
Aug 13 Python
python super()函数的基本使用
Sep 10 Python
详解Python中的文件操作
Jan 14 Python
pandas apply使用多列计算生成新的列实现示例
Feb 24 Python
Python读取YUV文件,并显示的方法
Dec 04 #Python
对Python3+gdal 读取tiff格式数据的实例讲解
Dec 04 #Python
用python代码将tiff图片存储到jpg的方法
Dec 04 #Python
浅谈python下tiff图像的读取和保存方法
Dec 04 #Python
对python3新增的byte类型详解
Dec 04 #Python
对Python3中bytes和HexStr之间的转换详解
Dec 04 #Python
python 实现数字字符串左侧补零的方法
Dec 04 #Python
You might like
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
PHP实现清除wordpress里恶意代码
2015/10/21 PHP
thinkPHP下的widget扩展用法实例分析
2015/12/26 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
uni-app 支持多端第三方地图定位的方法
2020/01/03 Javascript
详解React 元素渲染
2020/07/07 Javascript
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
简单了解Django应用app及分布式路由
2019/07/24 Python
Django单元测试工具test client使用详解
2019/08/02 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
Python通过队列来实现进程间通信的示例
2020/10/14 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
eBay美国官网:eBay.com
2020/10/24 全球购物
高级技校毕业生自荐信
2013/11/18 职场文书
个人作风剖析材料
2014/02/02 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
2015年感恩父亲节活动策划方案
2015/05/05 职场文书
春节慰问简报
2015/07/21 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书
pyqt5蒙版遮罩mask,setmask的使用
2021/06/11 Python