你不可能,也不容易。
更好的选择是告诉页面包含更好的
next
通过显式设置
login_required
模板中的标志:
@app.route('/awesomepage')
@login_required
def awesome_page():
return render_template('awesome.html', login_required=True)
并使用以下内容呈现注销链接:
{% if login_required %}{{ url_for('logout', next=url_for('index')) }}
{% else %}{{ url_for('logout' }}{% endif %}
另一种方法是定义登录视图
需要登录名
重定向到该视图。那个
能够
成为您的索引页。
另一种方法是创建一个增强的
需要登录名
decorator,它设置一个全局变量,然后对其进行测试:
from functools import wraps
from flask import g
from flask_login import login_required
def my_login_required(f):
@login_required
@wraps(f)
def wrapped(*args, **kwargs):
g.login_required = True
return f(*args, **kwargs)
return wrapped
然后在视图上使用该装饰器,而不是Flask Login版本:
@app.route('/awesomepage')
@my_login_required
def awesome_page():
return render_template('awesome.html')
并更新模板以查找全局:
{% if g.login_required %}{{ url_for('logout', next=url_for('index')) }}
{% else %}{{ url_for('logout' }}{% endif %}