zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    迪杰斯特拉_优先队列 模板
    POJ3268(Dijkstra_邻接矩阵)
    Uva-10815
    Uva-10474
    同余方程
    欧几里得算法与扩展欧几里得算法
    大整数型的加法
    Uva442
    《哲学起步》读后感 读书笔记
    《论大战略》读后感 读书笔记
  • 原文地址:https://www.cnblogs.com/1996-11-01-614lb/p/8975371.html
Copyright © 2011-2022 走看看