我正在构建一个小型 Web 应用程序作为一个项目,我正在使用装饰器 @login_required
目前它重定向到一条不存在的路由 /login
如何手动设置路线?
这是我的代码:
@auth.route('/logout', methods=['POST'])
@login_required
def logout():
session.pop("user", None)
return redirect(url_for('index'))
最佳答案
使用 flask-login
处理用户 session 。
(venv)$ pip3 install flask-login && pip3 freeze > requirements.txt
将此包添加到您的应用程序实例。这是 __init__.py
文件或具有以下内容的文件:from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
app.run(host='0.0.0.0')
这是您添加它的方式:# __init__.py
from flask import Flask
from flask_login import LoginManager
app = Flask(__name__)
login = LoginManager(app)
login.login_view = 'login'
from app import routes
我已通过 login
查看功能到login
目的。该函数是处理用户登录的函数。from app import app
from flask_login import login_required
@app.route('/')
@app.route('/index')
@login_required
def index():
return render_template('index.html')
@app.route('/login', methods=['GET', 'POST'])
def login():
if current_user.is_authenticated:
return redirect(url_for('index'))
form = LoginForm()
if form.validate_on_submit():
# Your code
return render_template('login.html', form=form)
我已通过 login_required
装饰师到 index()
查看功能。用户每次想要访问索引页面,都会被重定向到登录页面进行身份验证,由login
渲染。查看功能。登录成功后,此人才能访问索引页面。欢迎通过
login_required
可以匿名访问的任何其他函数的装饰器。我已经看到您正在使用蓝图。我的示例没有使用蓝图,尽管更新代码以使用蓝图应该相当容易。
关于python - Flask 如何将@login_required 重定向到特定路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67168922/