• 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()
    该花的钱要花,该吃的饭要吃。
  • 相关阅读:
    从客户端检测到有潜在危险的Request.Form值
    IE6,IE7,FF等浏览器不兼容原因及解决办法
    C#代码与javaScript函数的相互调用
    Asp.net 导出Excel 和Word
    JS取得RadioButtonList的Value,Text及选中值等信息
    VS2005+SQL2005 ASP.NET2.0数据库连接
    蛮好蛮使用的登陆界面
    C#.NET防止SQL注入式攻击
    Asp.net中防止用户多次登录的方法
    集合初始化器
  • 原文地址:https://www.cnblogs.com/chao666/p/12403229.html
Copyright © 2020-2023  润新知