Я работаю в Rails и обнаружил, что мои маршруты во флягах очень быстро запутались. Похоже, что flask призывает вас включить всю логику вашего контроллера в определение вашего маршрута / приложения.
Так что вместо
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 Engines, но это не тот тип разбиения, который я ищу. Как я могу сделать мои маршруты о моих маршрутах, а не об их реализации? Мне действительно нужно обновиться до 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