flask-restful学习

flask-restful学习简介Flask-RESTful是用于快速构建REST API的Flask扩展。安装pip install flask-restful简单使用通过endpoint参数为路由起名api.add_resource(HelloResource, "/", endpoint='HelloWorld')使用步骤:导入Resource, Api...
摘要由CSDN通过智能技术生成

flask-restful学习

  1. 简介

    Flask-RESTful是用于快速构建REST API的Flask扩展。

  2. 安装
    pip install flask-restful
    
  3. 简单使用

    通过endpoint参数为路由起名

    api.add_resource(HelloResource, "/", endpoint='HelloWorld')
    

    使用步骤:

    1. 导入Resource, Api
    2. 创建api对象,并关联app
    3. 定义视图类
    4. 使用api对象绑定路由和视图
    from flask import Flask
    
    # 1.导入Resource, Api
    from flask_restful import Resource, Api
    
    app = Flask(__name__)
    
    # 2.创建api对象,并关联api
    api = Api(app)
    
    # 3.定义视图
    class HelloResource(Resource):
        def get(self):
            return {
         "get":"get请求"}
        def post(self):
            return {
         "post":"post请求"}
    
    # 4.使用api对象绑定路由和视图
    api.add_resource(HelloResource, "/")
    
    # 此处启动对于1.0之后的Flask可有可无
    if __name__ == '__main__':
        app.run()
    

    小结:
    用原生也可以写出restful风格的api
    用flask-restful,可以更方便。

  4. 在蓝图中使用flask-restful扩展

    使用步骤:

    1. 创建蓝图对象
    2. 创建api对象,并关联到蓝图对象
    3. 定义视图类
    4. 使用api对象绑定视图类和路由关系
    5. 把蓝图对象注册到app中
    from flask import Flask, Blueprint
    from flask_restful import Api, Resource
    
    app = Flask(__name__)
    
    # 1.创建蓝图对象
    user_bp = Blueprint('user', __name__)
    
    # 2.创建api对象,并关联到蓝图对象
    user_api = Api(user_bp)
    
    # 3.定义视图类
    class BluePrintRestful(Resource):
        def get(self):
            return {
         "get":"get请求"}
        def post(self):
            return {
         "post":"post请求"}
    
    # 4.使用api对象绑定视图类和路由关系
    # 通过endpoint参数为路由起名
    # user_api.add_resource(BluePrintRestful, '/', endpoint="BpRestful")
    user_api.add_resource(BluePrintRestful, '/')
    
    # 5.把蓝图对象注册到app中
    app.register_blueprint(user_bp, url_prefix="/user")
    
    if __name__ == '__main__':
        app.run()
    
  5. 视图类使用装饰器的方式

    在视图类中,有两种方式:

    1. 以列表的方式,赋值给method_decorators类属性。对所有请求方法有效
      method_decorators = [decorator1, decorator2]
    2. 以字典的方式,赋值给method_decorators。分别对请求方法生效
      method_decorators = {
      ‘get’: [decorator1, decorator2],
      ‘post’: [decorator1]
      }
    3. 注意:
      装饰器的执行顺序是从右往左
    from flask import Flask
    
    # 1.导入Resource, Api
    from flask_restful import Resource, Api
    
    # 定义装饰器1
    def decorator1(func):
        def wrapper(*args, **kwargs):
            print("装饰器1")
            return func(*args, **kwargs)
        return wrapper
    
    # 定义装饰器2
    def decorator2(func):
        def wrapper(*args, **kwargs):
            print("装饰器2")
            return func(*args, **kwargs)
        return wrapper
    
    app = Flask(__name__)
    
    # 2.创建api对象,并关联api
    api = Api(app)
    
    # 3.定义视图类
    class Index(Resource):
        # 1.以列表的方式,为类视图中的所有方法添加装饰器
        # method_decorators = [decorator1, decorator2]
        # 2.以字典的方式,为类视图中不同的方法添加不同的装饰器
        method_decorators = {
         
            "get":[decorator1, decorator2],
            "post":[decorator1]
        }
        def get(self):
            return {
         "get":"get请求"}
        def post(self):
            return {
         "post":"post请求"}
    
    # 4.使用api对象绑定路由和视图
    api.add_resource(Index, "/")
    
    # 此处启动对于1.0之后的Flask可有可无
    if __name__ == '__main__':
        app.run()
    

    执行结果:
    在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值