Python 什么';“这是制作烧瓶路线的最佳方法”;跌破;去另一条路线?

Python 什么';“这是制作烧瓶路线的最佳方法”;跌破;去另一条路线?,python,flask,Python,Flask,我有两条路线 @app.route("/") def root(): return render_template("/login.html") @app.route("/login") def login(): return render_template("/login.html") 与上面的代码不同,我只想让root()自动返回login()返回的任何内容,因此如果我在login()中更改某些内容,我不必在root()中进行相同的更改。显而易见的方法是 def root

我有两条路线

@app.route("/")
def root():
    return render_template("/login.html")

@app.route("/login")
def login():
    return render_template("/login.html")
与上面的代码不同,我只想让
root()
自动返回
login()
返回的任何内容,因此如果我在
login()
中更改某些内容,我不必在
root()
中进行相同的更改。显而易见的方法是

def root():
    return login()
但这似乎不对,因为
login
实际上不是
login
,而是
login
app.route
装饰器包装的。这会引起问题吗

另一种方法是使用
重定向
,但我不想让用户对我可以在后端处理的内容发出不必要的额外HTTP请求

另一种方法是将
login
函数分配给
/
/login
路由,但假设出于某种原因,我想要一个单独的
root()
函数,可能只是因为它使以后更容易更改
/
路由,或者因为我想在呈现登录页面之前进行一些初始设置

最惯用的方法是什么?

创建“后备”路由,即在没有其他更具体的路由匹配时调用的路由

@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def root(path):
    return render_template("/login.html")
@app.route('/',默认值={'path':''})
@应用程序路径(“/”)
def根目录(路径):
返回呈现模板(“/login.html”)

在根函数中创建一个if语句,检查用户是否已登录,如果未登录,是否重定向到登录路径


除此之外,我认为所有选项都已经提到了。

@app.route(“/”,“/login”)
这两个选项都适用url@Avi这是一个很好的短期解决方案,但这正是我在问题的最后一段所说的我试图避免的事情。编辑:另外,我得到了一个“参数太多”错误-这是用于哪个版本的Flask?很抱歉,我上述评论的确切答案是这样的
@app.route(“/”/”/),按enter@app.route(“/login”)按enter def yourfunction
,我认为这并不能回答问题。我不希望每个路径都进入登录页面,只有一条。而且,这似乎也是我在问题的最后一段中试图排除的事情。