我有两条烧瓶路线。
@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
。这会引起问题吗?
另一种方法是使用redirect
,但我不想让用户对后端可以处理的内容提出不必要的额外HTTP请求。
另一种方法是将login
函数同时分配给/
和/login
路由,但假设我想为某些路由使用单独的root()
函数原因,可能是因为它使以后更容易更改/
路由,或者是因为我想在呈现登录页面之前进行一些初始设置。
最惯用的方法是什么?
答案 0 :(得分:1)
要创建“后备”路由,即当没有其他更具体的路由匹配时将调用的路由。
@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def root(path):
return render_template("/login.html")
答案 1 :(得分:0)
在根函数中创建if语句,以检查用户是否已登录,如果没有登录,然后重定向到登录路径?
除此之外,我认为所有选项都已提及。