zoukankan      html  css  js  c++  java
  • FlaskRESTful之入门

    安装模块

    pip install flask_restful

    入门使用

    使用步骤:

    1. 导包

    # 1. 导包
    from flask_restful import Api, Resource

    2. 创建api对象并接管app

    # 2. 创建API对象并接管app
    api = Api(app)

    3. 创建类视图

    # 3. 定义类视图
    class IndexResource(Resource):
        def get(self):
            return 'index'

    4. 使用api对象给类视图添加路由

    # 4. 使用api对象添加路由
    api.add_resource(IndexResource, '/')

    案例代码:

    from flask import Flask
    # 1. 导包
    from flask_restful import Api, Resource
    
    app = Flask(__name__)
    
    # 2. 创建API对象并接管app
    api = Api(app)
    
    
    # 3. 定义类视图
    class IndexResource(Resource):
        def get(self):
            return 'index'
    
    # 4. 使用api对象添加路由
    api.add_resource(IndexResource, '/')
    
    if __name__ == '__main__':
        app.run()

    结合蓝图使用

    使用步骤:

    1. 导包

    # 1. 导包
    from flask_restful import Api, Resource
    from flask.blueprints import Blueprint

    2. 创建蓝图对象

    3. 创建api对象并接管蓝图

    # 2. 创建蓝图对象,并使用API对象接管蓝图
    bule_prin = Blueprint('flask_blueprint', __name__)
    api = Api(bule_prin)

    4. 定义类视图

    5. 使用api对象给类视图添加路由

    # 3. 定义试图,并使用API对象添加路由
    class IndexResource(Resource):
        def get(self):
            return 'index'
    api.add_resource(IndexResource, '/')

    6. 注册蓝图

    # 4.将蓝图注册到app中
    app.register_blueprint(bule_prin)

    案例代码:

    from flask import Flask
    # 1. 导包
    from flask_restful import Api, Resource
    from flask.blueprints import Blueprint
    
    app = Flask(__name__)
    
    # 2. 创建蓝图对象,并使用API对象接管蓝图
    bule_prin = Blueprint('flask_blueprint', __name__)
    api = Api(bule_prin)
    
    
    # 3. 定义试图,并使用API对象添加路由
    class IndexResource(Resource):
        def get(self):
            return 'index'
    api.add_resource(IndexResource, '/')
    
    # 4.将蓝图注册到app中
    app.register_blueprint(bule_prin)
    
    if __name__ == '__main__':
        app.run()

    结合装饰器使用

    使用步骤:

    1. 导包

    from flask_restful import Api, Resource

    2. 创建api对象并接管app

    api = Api(app)

    3. 编写装饰器

    # 2. 定义装饰器
    def outter(func):
        def inner(*args, **kwargs):
            ret = func(*args, **kwargs)
            return '{} decorators....'.format(ret)
        return inner

    4. 定义类视图指定请求方法的装饰器,并使用api给类视图添加路由

    # 1. 定义类视图,并设置路由
    class IndexResource(Resource):
        # 为所有请求方法都添加装饰器
        # method_decorators = [outter]
    
        # 为指定方法添加装饰器
        method_decorators = {
            'get': [outter]
        }
    
        def get(self):
            return 'get ...'
    
        def post(self):
            return 'post ...'
    
    api.add_resource(IndexResource, '/')

    装饰器的指定方式:

    1. 给所有请求方法都添加装饰器

    # 为所有请求方法都添加装饰器
        method_decorators = [outter]

    2. 给指定的请求方法添加装饰器

        # 为指定方法添加装饰器
        method_decorators = {
            'get': [outter]
        }

    案例代码:

    from flask import Flask
    from flask_restful import Api, Resource
    app = Flask(__name__)
    api = Api(app)
    
    # 2. 定义装饰器
    def outter(func):
        def inner(*args, **kwargs):
            ret = func(*args, **kwargs)
            return '{} decorators....'.format(ret)
        return inner
    
    
    # 1. 定义类视图,并设置路由
    class IndexResource(Resource):
        # 为所有请求方法都添加装饰器
        # method_decorators = [outter]
    
        # 为指定方法添加装饰器
        method_decorators = {
            'get': [outter]
        }
    
        def get(self):
            return 'get ...'
    
        def post(self):
            return 'post ...'
    
    api.add_resource(IndexResource, '/')
    
    if __name__ == '__main__':
        app.run()
    该花的钱要花,该吃的饭要吃。
  • 相关阅读:
    rabbitmq级联之shovel插件和exchange.bind
    gcc常用编译选项
    windows下rabbitmq-c编译(带openssl、无需MinGW)
    windows下openssl编译
    关于actor模型
    mysql优化之使用iotop+pt-ioprofile定位具体top io文件
    centos6下jbd2进程占用大量IO处理
    c++中的header-only library
    java中线程的停止以及LockSupport工具类
    java Condition条件变量的通俗易懂解释、基本使用及注意点
  • 原文地址:https://www.cnblogs.com/chao666/p/12403229.html
Copyright © 2011-2022 走看看