烧瓶捕捉和嵌套常见路线
Posted
技术标签:
【中文标题】烧瓶捕捉和嵌套常见路线【英文标题】:Flask catching and nesting common routes 【发布时间】:2020-10-09 14:06:31 【问题描述】:有没有办法捕捉公共路线以防止重复装饰器(可能还有 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】:您提到的方式是不可能的,但您可以使用蓝图使您的代码更干净和可读。观看 Corey MS 的这段视频,他以非常详细和精确的方式解释了这一点。 https://m.youtube.com/watch?v=Wfx4YBzg16s&list=PL-osiE80TeTs4UjLw5MM6OjgkjFeUxCYH&index=12&t=0s
或者参考蓝图的官方文档: https://flask.palletsprojects.com/en/1.1.x/blueprints/
【讨论】:
以上是关于烧瓶捕捉和嵌套常见路线的主要内容,如果未能解决你的问题,请参考以下文章