python实现用户登录
时间: 2023-12-04 20:59:01 浏览: 21
可以使用 Flask-Login 模块来实现用户登录功能,在用户注册后,可以使用 session 存储用户信息,并通过 Flask 路由来验证登录状态。以下是一个简单的示例代码:
```
from flask import Flask, render_template, request, redirect, url_for, session
from flask_login import LoginManager, login_user, current_user, login_required, logout_user
app = Flask(__name__)
app.secret_key = 'secret_key' # 用于 session 的加密
login_manager = LoginManager(app)
# 模拟用户
users = {
'user1': {'password': 'password1'},
'user2': {'password': 'password2'},
'user3': {'password': 'password3'}
}
class User:
def __init__(self, username):
self.username = username
def is_authenticated(self):
return True
def is_active(self):
return True
def is_anonymous(self):
return False
def get_id(self):
return self.username
@login_manager.user_loader
def load_user(user_id):
if user_id in users:
return User(user_id)
return None
@app.route('/')
def index():
return render_template('index.html')
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
if username in users and password == users[username]['password']:
user = User(username)
login_user(user)
return redirect(url_for('protected'))
return redirect(url_for('login'))
return render_template('login.html')
@app.route('/protected')
@login_required
def protected():
return render_template('protected.html')
@app.route('/logout')
@login_required
def logout():
logout_user()
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)
```
我们需要在页面中定义登录和保护资源的路由和模板。这个示例使用 Flask-Login 来处理用户认证和会话管理,同时使用 Flask 框架提供的功能来处理路由。可以将这个示例代码作为模板来扩展自己的应用程序。