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 判断一个进程是否存在
Apr 09 Python
Python实现一个简单的MySQL类
Jan 07 Python
python创建关联数组(字典)的方法
May 04 Python
解决python大批量读写.doc文件的问题
May 08 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
Dec 05 Python
对Python 检查文件名是否规范的实例详解
Jun 10 Python
Python requests及aiohttp速度对比代码实例
Jul 16 Python
Python字典fromkeys()方法使用代码实例
Jul 20 Python
Python 处理日期时间的Arrow库使用
Aug 18 Python
教你怎么用Python实现多路径迷宫
Apr 29 Python
Python中如何处理常见报错
Jan 18 Python
Python实现归一化算法详情
Mar 18 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
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
php排序算法(冒泡排序,快速排序)
2012/10/09 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
浅谈Node框架接入ELK实践总结
2019/02/22 Javascript
微信小程序实现购物车代码实例详解
2019/08/29 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
Python 面向对象 成员的访问约束
2008/12/23 Python
python读取word文档的方法
2015/05/09 Python
Python编程中用close()方法关闭文件的教程
2015/05/24 Python
解决已经安装requests,却依然提示No module named requests问题
2018/05/18 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
python pygame实现球球大作战
2019/11/25 Python
python调用函数、类和文件操作简单实例总结
2019/11/29 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
Bodum官网:咖啡和茶壶、玻璃器皿、厨房电器等
2018/08/01 全球购物
音乐表演专业毕业生求职信
2013/10/14 职场文书
培训主管的岗位职责
2013/11/23 职场文书
个人简历中自我评价
2014/02/11 职场文书
二年级小学生评语
2014/04/21 职场文书
工作建议书范文
2014/05/13 职场文书