flask之视图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

 

以上是关于flask之视图的主要内容,如果未能解决你的问题,请参考以下文章

Flask之视图

三十python之Flask框架视图:返回状态码重定向状态保持请求钩子

Flask之蓝图

Flask之测试与部署

flask之视图

Flask之视图