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
,我认为这并不能回答问题。我不希望每个路径都进入登录页面,只有一条。而且,这似乎也是我在问题的最后一段中试图排除的事情。