• flask之视图


    flask的CBV模式

         def auth(func):
                def inner(*args, **kwargs):
                    result = func(*args, **kwargs)
                    return result
                return inner
    
         class IndexView(views.MethodView):
                # methods = ['POST']  #只允许POST请求访问
                decorators = [auth,]  #如果想给所有的get,post请求加装饰器,就可以这样来写,也可以单个指定
      
                def get(self):   #如果是get请求需要执行的代码
                    v = url_for('index')
                    print(v)
                    return "GET"
    
                def post(self):  #如果是post请求执行的代码
                    return "POST"
    
         app.add_url_rule('/index', view_func=IndexView.as_view(name='index'))  #name指定的是别名,会当做endpoint使用
    
          if __name__ == '__main__':
                app.run()

    flask中的FBV模式

     方式一:
        @app.route('/index',endpoint='xx')
        def index(nid):
            url_for('xx',nid=123)
            return "Index"
    
        方式二:
        def index(nid):
            url_for('xx',nid=123)
            return "Index"
    
        app.add_url_rule('/index',index)

    随便练习的CBV和FBV

    from flask import Flask,render_template,redirect,views
    app = Flask(__name__)
    import functools
    
    def wapper(func):
        @functools.wraps(func)
        def inner(*args,**kwargs):
            print('before')
            return func(*args,**kwargs)
        return inner
    
    @app.route('/xxxx',methods=['GET','POST'])
    @wapper
    def index():
        return "Index"
    
    
    # class IndexView(views.View):
    #     methods = ['GET']
    #     decorators = [wapper, ]
    #
    #     def dispatch_request(self):
    #         print('Index')
    #         return 'Index!'
    #
    # app.add_url_rule('/index', view_func=IndexView.as_view(name='index1'))  # name=endpoint
    
    
    class IndexView(views.MethodView):
        methods = ['GET']
        decorators = [wapper, ]
    
        def get(self):
            return 'Index.GET'
    
        def post(self):
            return 'Index.POST'
    
    app.add_url_rule('/index', view_func=IndexView.as_view(name='index2'))  # name=endpoint
    
    
    if __name__ == '__main__':
        app.run()
  • 相关阅读:
    OAuth2.0系列之授权码模式实践教程(二)
    OAuth2.0系列之基本概念和运作流程(一)
    OAuth2.0系列之单点登录SSO实现
    Mybatis系列之设置自动提交事务
    springMVC系列之@Responsebody接口弹出f.txt下载问题
    Oracle应用之批量递增更新数据脚本
    前端 自定义弹出框-提示框(一)
    IE不兼容问题 字符串格式化
    JS 打开本地应用软件
    PPT导出为图片
  • 原文地址:https://www.cnblogs.com/1996-11-01-614lb/p/8975371.html
Copyright © 2020-2023  润新知