Flask的CBV用法

FBV写法

from flask import Flask, jsonify

app = Flask(__name__)
app.debug = True


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

CBV写法

# 导入模块
from flask.views import MethodView
# 固定写法
from flask import Flask

app = Flask(__name__)
app.debug = True

# 书写类方法
class UserView(MethodView):
    def get(self):
        return '我是get'

    def post(self):
        return '我是post'

# 注册路由(as_view传的就是路径名)
app.add_url_rule('/user', 'user', UserView.as_view('user'))

# 运行
if __name__ == '__main__':
    app.run()

CBV加装饰器

使用步骤:在类中加入类属性:
class ItemAPI(MethodView):
    decorators = [装饰器1,装饰器2] # 先写的装饰器放在最内部---》最后执行
    def get(self):
        return 'get'

注意事项

# as_view必须加一个字符串---》是路由的别名
# endpoint 和 as_view(name= 路由别名),以谁为准?
# 读源码后,知道了,以 endpoint 为准

# 如果endpoint 没传--》endpoint是 view_func.__name__ 视图函数的名字 ,别名就是函数名
# 如果endpoint 没传,as_view(name= 路由别名)也没传---》去视图函数名字-->视图函数都是:view
# as_view(name= 路由别名) 有什么用? 把view的名字改为了,你传入的字符串名
posted @ 2024-02-29 15:40  wellplayed  阅读(13)  评论(0)    收藏  举报