Python 烧瓶中的详细路线

Python 烧瓶中的详细路线,python,flask,Python,Flask,我来自Rails背景,我发现我的烧瓶路线很快变得非常混乱。flask似乎鼓励您将所有控制器逻辑放入路由/应用程序定义中 所以不是 resources :users 并将实现放入users_controller.py中 我明白了 然后再加上4个动作。这真的需要吗 我尝试过使用蓝图,它似乎可以与Rails引擎相比较,但它不是我想要的那种分区。我如何根据我的路线而不是路线的实施来制定路线?我真的要升级到Django吗 编辑 换一种不同的、也许更清晰的方式:我希望从我的app.py文件中删除这些方法。

我来自Rails背景,我发现我的烧瓶路线很快变得非常混乱。flask似乎鼓励您将所有控制器逻辑放入路由/应用程序定义中

所以不是

resources :users
并将实现放入users_controller.py中

我明白了

然后再加上4个动作。这真的需要吗

我尝试过使用蓝图,它似乎可以与Rails引擎相比较,但它不是我想要的那种分区。我如何根据我的路线而不是路线的实施来制定路线?我真的要升级到Django吗

编辑 换一种不同的、也许更清晰的方式:我希望从我的
app.py
文件中删除这些方法。我想要比
route()
更高的抽象来定义CRUD资源。差不多

app.resources("users", controller=UsersController)
或者更好的是,让Flask根据资源名称解析控制器

然后UsersController将看起来像这样

class UsersController:

    def index():
        pass

    def show(user_id):
        pass

    def new():
        pass

    def create():
        pass

    def edit(user_id):
        pass

    def update():
        pass

    def delete():
        pass

你在找这个吗?flask.pocoo.org/docs/1.0/views包含可插入视图,请查看上的最后一部分

只需注意,CRUD视图的实现并不是来自Flask的盒子之外,根据它的设计,它试图做到无偏见和灵活

class UsersController:

    def index():
        pass

    def show(user_id):
        pass

    def new():
        pass

    def create():
        pass

    def edit(user_id):
        pass

    def update():
        pass

    def delete():
        pass
class UserAPI(MethodView):

    def get(self, user_id):
        if user_id is None:
            # return a list of users
            pass
        else:
            # expose a single user
            pass

    def post(self):
        # create a new user
        pass

    def delete(self, user_id):
        # delete a single user
        pass

    def put(self, user_id):
        # update a single user
        pass