Python flask 构建可扩展的restful apl☝☝☝

Flask-RESTful是flask的扩展,增加了对快速构建REST API的支持。Flask-RESTful通过最少的设置鼓励最佳的实践。

pip install flask-restful
Flask-RESTful需要Python版本2.7,3.4,3.5,3.6或3.7

  1. 资源和路由
    from flask-restful import Resource,Api
    app = Flask(name)
    api = Api(app)
    class TodoSimple(Resource):
    pass
    api.add_resource(TodoSimple, '/<string:todo_id>')

总结:
flask-restful的主要构建块是resource,资源构建在Flask可插入视图之上,只需在资源上定义方法,即可轻松访问多个HTTP方法。
很多时候,在API中,您的资源会有多个网址。您可以将多个URL传递给Api对象add_resource()的方法上。每一个都将路由传到您的Resource

reqparse模块内置了对请求数据验证的支持 。
from flask_restful import reqparse
parser = reqparse.RequestParser()
parser.add_argument('rate', type=int, help='Rate to charge for this resource')
args = parser.parse_args()
注意:与argparse模块不同,reqparse.RequestParser.parse_args() 返回Python字典而不是自定义数据结构。
使用该reqparse模块还可以免费为您提供合理的错误消息。如果参数未能通过验证,Flask-RESTful将响应400 Bad Request和突出显示错误的响应。

默认情况下,返回可迭代中的所有字段都将按原样呈现。虽然在处理Python数据结构时这很有用,但在处理对象时会非常令人沮丧。为了解决这个问题,Flask-RESTful提供了fields模块和 marshal_with()装饰器。与Django ORM和WTForm类似,您可以使用该fields模块来描述响应的结构。
from flask_restful import fields, marshal_with
@marshal_with
该 marshal_with()装饰将应用所描述的转变 resource_fields。从对象中提取的唯一字段是task。该 fields.Url字段是一个特殊字段,它采用端点名称并在响应中为该端点生成URL。您需要的许多字段类型已包含在内。

最新文章

  1. Socket
  2. 发布mvc报错:403.14-Forbidden Web 服务器被配置为不列出此目录的内容
  3. PHP global 关键字
  4. HTML5之sessionStorage
  5. 使用MySQL索引的几个问题
  6. objective-C 中两种实现动画的方法
  7. MVC中modelstate的使用
  8. HW4.27
  9. 《Algorithms 4th Edition》读书笔记——3.1 符号表(Elementary Symbol Tables)-Ⅲ
  10. 0115——cocoapod的使用
  11. 用php 把数组中偶数,选择出来
  12. BZOJ 1497 [NOI2006]最大获利 ——网络流
  13. 泛型加委托在EF下的操作例子
  14. Spring消息之AMQP.
  15. Reason的介绍和搭建Reason开发环境
  16. macOS上实现Qt应用程序做文件关联打开
  17. Java框架spring 学习笔记(五):Bean定义继承
  18. java中获取路径的方法
  19. Linux之cd、pwd、mkdir、rmdir
  20. [Python] 怎么把HTML的报告转换为图片,利用无头浏览器

热门文章

  1. 小白的消费为何被迫升级?-java数据类型的转换
  2. Spring Cloud(二):服务消费者
  3. 1512: [POI2006]Pro-Professor Szu
  4. Android开发--Intent的使用(1)启动活动
  5. Day 13 linux 的输入输出与管道的使用
  6. (二)spring 高级装配-Condition -条件化的bean
  7. Docker学习之docker架构
  8. [DE] How to learn Big Data
  9. Rsync 服务部署与参数详解
  10. Flask关于request一些方法和属性的整理(持续更新)