Como usar o Flask_login
- Prefácio
- Etapas básicas para usar o Flask-Login:
-
- 1. Instale o Flask-Login
- 2. Inicialize o Flask-Login no aplicativo Flask
- 3. Crie um modelo de usuário
- 4. Implementar função de carregamento do usuário
- 5. Implemente a função de visualização de login
- 6. Implemente a função de visualização de logout
- 7. Proteja as funções de visualização que exigem login para acessar
Prefácio
Flask-Login é uma extensão Flask que fornece autenticação de usuário e funções de gerenciamento de login. A autenticação do usuário e o gerenciamento de sessão podem ser facilmente implementados usando Flask-Login e também fornece muitas funções úteis, como função de lembrança do usuário, restrições de login, logout do usuário, etc.
Etapas básicas para usar o Flask-Login:
1. Instale o Flask-Login
pip install flask-login
2. Inicialize o Flask-Login no aplicativo Flask
from flask import Flask
from flask_login import LoginManager
app = Flask(__name__)
login_manager = LoginManager()
login_manager.init_app(app)
3. Crie um modelo de usuário
from flask_login import UserMixin
class User(UserMixin):
pass
4. Implementar função de carregamento do usuário
@login_manager.user_loader
def load_user(user_id):
# 根据用户ID加载用户
return User.get(user_id)
5. Implemente a função de visualização de login
from flask_login import login_user, current_user
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
# 验证用户登录信息
user = User.query.filter_by(username=request.form['username']).first()
if user and check_password_hash(user.password, request.form['password']):
# 登录用户
login_user(user, remember=True)
# 跳转到首页
return redirect(url_for('index'))
else:
# 显示错误信息
flash('Invalid username or password')
# 显示登录表单
return render_template('login.html')
6. Implemente a função de visualização de logout
from flask_login import logout_user
@app.route('/logout')
@login_required
def logout():
# 注销用户
logout_user()
# 跳转到登录页
return redirect(url_for('login'))
7. Proteja as funções de visualização que exigem login para acessar
from flask_login import login_required
@app.route('/profile')
@login_required
def profile():
# 显示用户资料
return render_template('profile.html', user=current_user)
Acima estão as etapas básicas para usar o Flask-Login. Você pode modificá-lo e estendê-lo de acordo com suas próprias necessidades.