Flask 的扩展包 flask-restful

1、安装

pip install falsk-restful

2、第一个flask-restful程序

from flask import  Flask
#1、导入flask-restful工具类
from flask_restful import Api,Resource

app = Flask("__name__")
#2、实例化Api对象
api = Api(app)

@app.route("/index")
def index():
    return 'hello world'

#3、定义视图类,必须继承自Resource
class index_resourse(Resource):
    def get(self):
        return 'Hello'
#4、添加路由
api.add_resource(index_resourse,'/')   #第一个参数是端点名字,第二个路由

if __name__ == "__main__":
    app.run(debug=True)

3、蓝图Blueprint 和flask-restful

from flask import  Flask,Blueprint
#1、导入flask-restful工具类
from flask_restful import Api,Resource

app = Flask(__name__)
#2、实例化Api对象

bp = Blueprint('bp',__name__)  #实例化蓝图对象
api = Api(bp) # 将蓝图添加到Api中

#3、定义视图类,必须继承自Resource
class index_resourse(Resource):
    def get(self):
        return {"get":'hello1'}
    def post(self):
        return {"post":'hello2'}
#4、添加路由
api.add_resource(index_resourse,'/')  #第一个参数是端点名字,第二个路由
app.register_blueprint(bp)

if __name__ == "__main__":
    print(app.url_map)
    '''
    Map([<Rule '/' (OPTIONS, POST, GET, HEAD) -> bp.index_resourse>,  蓝图名称和端点名称
    <Rule '/static/<filename>' (OPTIONS, GET, HEAD) -> static>])
    '''
    app.run(debug=True)

4、装饰器

from flask import Flask
from flask_restful import Resource,Api
app = Flask(__name__)
api = Api(app)
#添加装饰器
def decorator1(fun):
    def inner(*arg,**kwargs):
        print("decorator1 is run")
        return fun(*arg,**kwargs)
    return inner
def decorator2(fun):
    def inner(*arg,**kwargs):
        print("decorator2 is run")
        return fun(*arg,**kwargs)
    return inner

class resourse(Resource):
    '''  以下分配装饰器比较常用
    method_decorators = [decorator1,decorator2]
    或者
    method_decorators = {
        'get':[decorator1],
        'post':[decorator2]
    }
    '''
    @decorator2   #适合于少量的方法需要添加装饰器
    def get(self):
        return {"get": 'hello1'}
    @decorator1
    def post(self):
        return {"post": 'hello2'}
api.add_resource(resourse,'/')

if __name__=='__main__':
    app.run(debug=True)

5、请求处理

from flask import Flask
from flask_restful import Resource,Api,reqparse,inputs
app = Flask(__name__)
api = Api(app)

class resourse(Resource):
    def get(self):
        req = reqparse.RequestParser() #实例化校验对象类
        # req.add_argument('a',type='方法 或 inputs.regex(r"正则表达") 或指定类型str int 等				 等',required=True,help='miss a')
        req.add_argument('tysay',type=str,required=False,help='miss tysay')
        # parse_args解析参数
        args = req.parse_args()
        print(args)
        return {"get": 'hello'}

api.add_resource(resourse,'/')

if __name__=='__main__':
    app.run(debug=True)
 
''' 
    需求:统一数据格式
    默认情况下:{'get':'hello world'}
    目标情况下:{'message':'ok','data':{'get':'hello world'}}
'''

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值