基于类的视图扩展点

描述

这个扩展缩写为cvep。

Flask-Classful是Flask扩展,用以添加基于类的视图。

这个扩展点是基于Flask-Classful来扩展路由的,所以你的应用程序需要安装它(文档地址: flask_classful_docs )。

$ pip install -U Flask-Classful

插件需要通过register函数返回cvep字段,返回的cvep数据类型可以是字典、列表或元组,额,格式类似于vep。

字典的话,格式是{view_class:, other register options},更多options参数参考文档: flask_classful_register ,一个普通例子如下:

from flask_classful import FlaskView

class TestView(FlaskView):

    def index(self):
        return "test"

dict(view_class=TestView, route_base="/classful")

其他类型表示为多个路由,嵌套多个上面那种字典数据即可。

Flask-PluginKit通过 _cvep_handler() 加载cvep,这个方法会检测cvep规则和内容。

示例

  • 注册cvep

from flask_classful import FlaskView

quotes = [
    "A noble spirit embiggens the smallest man! ~ Jebediah Springfield",
    "If there is a way to do it better... find it. ~ Thomas Edison",
    "No one knows what he can do till he tries. ~ Publilius Syrus"
]

class QuotesView(FlaskView):

    def index(self):
        """Visit: http://localhost:5000/quotes/"""
        return "<br>".join(quotes)

    def get(self, id):
        """Visit: http://localhost:5000/quotes/1/"""
        id = int(id)
        if id < len(quotes) - 1:
            return quotes[id]
        else:
            return "Not Found", 404

def register():
    return dict(
        cvep = [
            dict(view_class=QuotesView)
        ]
    )