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 相关文章推荐
Pyramid添加Middleware的方法实例
Nov 27 Python
Python NumPy库安装使用笔记
May 18 Python
python方向键控制上下左右代码
Jan 20 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
利用Python如何制作好玩的GIF动图详解
Jul 11 Python
python把数组中的数字每行打印3个并保存在文档中的方法
Jul 17 Python
对Tensorflow中的矩阵运算函数详解
Jul 27 Python
python如何制作英文字典
Jun 25 Python
利用Python实现手机短信监控通知的方法
Jul 22 Python
python中count函数简单的实例讲解
Feb 06 Python
Python使用OpenPyXL处理Excel表格
Jul 02 Python
Elasticsearch 批量操作
Apr 19 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
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
PHP的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
php代码架构的八点注意事项
2016/01/25 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
PHP高效获取远程图片尺寸和大小的实现方法
2017/10/20 PHP
同时使用n个window onload加载实例介绍
2013/04/25 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
2013/11/21 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
JavaScript中0和&quot;&quot;比较引发的问题
2016/05/26 Javascript
JavaScript实现通过select标签跳转网页的方法
2016/09/29 Javascript
javascript事件的绑定基础实例讲解(34)
2017/02/14 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
Python构建图像分类识别器的方法
2019/01/12 Python
python 画二维、三维点之间的线段实现方法
2019/07/07 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
tensorflow 实现自定义layer并添加到计算图中
2020/02/04 Python
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
俄罗斯电动工具和设备购物网站:Vseinstrumenti.ru
2020/11/12 全球购物
会计自荐信范文
2014/03/09 职场文书
关于梦想的演讲稿
2014/05/05 职场文书
终止劳动合同协议书
2014/10/05 职场文书
团日活动总结格式
2015/05/11 职场文书
小学语文教学随笔
2015/08/14 职场文书
护士岗位竞聘书
2015/09/15 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python