from flask import Flask, render_template, request, redirect, url_for, session
import os
app = Flask(__name__)
# 设置密钥用于session管理
app.secret_key = os.urandom(24) # 随机生成密钥
# 登录页面路由
@app.route('/', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
# 获取表单提交的姓名
student_name = request.form.get('student_name', '').strip()
if student_name: # 检查姓名是否不为空
# 将姓名存储到session中
session['student_name'] = student_name
# 重定向到欢迎页面
return redirect(url_for('welcome'))
else:
# 姓名为空,显示错误信息
return render_template('index.html', error="请输入您的姓名")
# GET请求,显示登录页面
return render_template('index.html')
# 欢迎页面路由
@app.route('/welcome')
def welcome():
# 检查用户是否已登录
if 'student_name' in session:
student_name = session['student_name']
return render_template('welcome.html', name=student_name)
else:
# 未登录,重定向到登录页面
return redirect(url_for('login'))
# 登出功能
@app.route('/logout')
def logout():
# 清除session中的姓名
session.pop('student_name', None)
return redirect(url_for('login'))
if __name__ == '__main__':
# 启动Flask应用,允许外部访问,开启调试模式
app.run(host='0.0.0.0', port=5000, debug=True)