【发布时间】:2018-09-12 13:28:22
【问题描述】:
我来自 Rails 背景,我发现我的烧瓶路线很快变得非常混乱。似乎烧瓶鼓励您将所有控制器逻辑放入您的路由/应用程序定义中。
所以不是
resources :users
并将实现放入 users_controller.py
我明白了
@app.route("/users"), methods=["GET"]
def list_users():
return ..
@app.route("/users/new"), methods=["GET"]
def new_user():
return render_template("new")
@app.route("/users"), methods=["POST"]
def create_user()
....
然后添加另外 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
【问题讨论】: