欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Flask中的CBV

程序员文章站 2023-09-09 17:50:53
Flask中的CBV 第一种 class Index(views.MethodView): methods = ['GET', 'POST'] decorators = [] def get(self): return 'GET' def post(self): return 'POST' app. ......

flask中的cbv

第一种

class index(views.methodview):
    methods = ['get', 'post']   
    decorators = []

    def get(self):
        return 'get'

    def post(self):
        return 'post'

app.add_url_rule('/index', view_func=index.as_view(name='index'))  # name='index'相当于设置endpoint

index.as_view内部也会根据请求方式进行反射执行对应函数即执行dispatch_request

app.add_url_rule是进行装饰器路由映射内部执行的函数,本质上也是由add_url_rule添加的映射关系,decorators是添加的装饰器列表

第二种

class index(views.view):
        methods = ['get', 'post']
        decorators = []

        def dispatch_request(self):
            print('dispatch_request')
            return 'index!'

app.add_url_rule('/index', view_func=index.as_view(name='index'))

第二种继承的是views.view,这样就需要写dispatch_request函数,但也不必去进行分发请求,那么就会像fbv一样。