Flask общие маршруты ловли и гнездования - PullRequest
0 голосов
/ 19 июня 2020

Есть ли способ перехвата общих маршрутов, чтобы предотвратить повторение декораторов (и, возможно, параметров URL)?

Моя текущая структура кода:

@app.route("/user")
@login_required

@app.route("/user/logout")
@login_required

@app.route("/user/profile")
@login_required

@app.route("/user/profile/settings")
@login_required

Я хочу, чтобы он стал примерно таким:

@app.route("/user")
@login required

if ("/logout"):
    return template 

elif ("/profile"):
    return template

elif ("/profile/settings"):
    return template

И, возможно, можно было бы вложить как:

@app.route("/user")
@login required

if ("/logout"):
    if ("/"):
        return template

elif ("/profile"):
    if ("/"):
        return template
    elif ("/settings"):
        return template

1 Ответ

0 голосов
/ 19 июня 2020

Это невозможно, как вы упомянули, но вы можете использовать чертежи, чтобы сделать ваш код более чистым и читаемым. Посмотрите это видео Кори М.С., где он очень подробно и точно объясняет это. https://m.youtube.com/watch?v=Wfx4YBzg16s&list=PL-osiE80TeTs4UjLw5MM6OjgkjFeUxCYH&index=12&t=0s

Или ссылка на официальную документацию для чертежей: https://flask.palletsprojects.com/en/1.1.x/blueprints/

...