要保护网站管理员面板的访问,可以使用以下方法之一:
from flask import Flask, render_template, redirect, url_for
from flask_login import LoginManager, login_required
app = Flask(__name__)
app.secret_key = 'your_secret_key'
login_manager = LoginManager(app)
# 模拟用户数据库
users = {'admin': {'password': 'admin123'}}
# 用户登录验证回调
@login_manager.user_loader
def load_user(user_id):
return users.get(user_id)
# 登录页面
@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']:
# 登录成功后重定向到管理员面板
return redirect(url_for('admin_panel'))
else:
return 'Invalid username or password'
else:
return render_template('login.html')
# 管理员面板,需要登录才能访问
@app.route('/admin_panel')
@login_required
def admin_panel():
return 'Welcome to the admin panel!'
if __name__ == '__main__':
app.run()
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
@login_required
def admin_panel(request):
if request.user.is_authenticated and request.user.is_superuser:
# 只有超级用户(管理员)才能访问管理员面板
return render(request, 'admin_panel.html')
else:
return redirect('login')
请注意,这些只是示例代码,您需要根据您的具体需求进行修改和适应。另外,建议在生产环境中使用HTTPS来加密数据传输,以增加安全性。
下一篇:保护网站免受Cookie盗取