zoukankan      html  css  js  c++  java
  • 五、FBV与CBV

    1、FBV与CBV

      FBV(function base views):基于函数的视图,就是在视图里使用函数处理请求

      CBV(class base views):基于类的视图,就是在视图里使用类处理请求。

    2、flask中的FBV和CBV使用方式(两种方式都必须通过add_rule_url方法将其添加到路由映射里面,不可以使用装饰器)

    FBV:

    @app.route("/")
    def index():
        return "Hello World"

    CBV:

    第一种方式:所有在methods里面注册的请求都会经过dispatch_request方法,如果想要让对应的请求执行对应的方法,必须手动在dispatch_request里面通过反射来实现,所以第一种方式基本不用,主要是用第二种方式。

     1 class HomeView(views.View):
     2     # 可以处理的方法
     3     # methods = [],
     4     # 装饰器
     5     # decorators = (,),
     6     # provide_automatic_options = {}
     7 
     8     # 通过的请求都走这里,必须被重载
     9     def dispatch_request(self):
    10         return "Hello View"
    11 
    12 
    13 app.add_url_rule("/home", endpoint=None, view_func=HomeView.as_view(name="home"))

    第二种方式:第二种方式与django类似,MethodView已经实现了请求分发,直接编写对应的处理方法

    1 class HomeView(views.MethodView):
    2     def get(self):
    3         return "GET, home!"
    4 
    5     def post(self):
    6         return "Post, home!"
    7 
    8 
    9 app.add_url_rule("/home", endpoint=None, view_func=HomeView.as_view(name="home"))
  • 相关阅读:
    99. 恢复二叉搜索树
    337. 打家劫舍 III(dp+dfs)
    45. 跳跃游戏 II
    贪心
    460. LFU 缓存
    213. 打家劫舍 II(dp)
    MyScript 开发文档
    Android 全面屏体验
    Android Studio 导入自己编译的 framework jar
    cmake常用配置项
  • 原文地址:https://www.cnblogs.com/loveprogramme/p/13369050.html
Copyright © 2011-2022 走看看