from datetime import timedelta
from flask import Flask, request, session
from flask_session import Session
class Config():
'''工程配置信息'''
SECRET_KEY = "NDONAODNO(smspdadDWQm"
DEBUG = True
# redis
REDIS_HOST = "127.0.0.1"
REDIS_PORT = 6379
# flask_session用到的配置信息
SESSION_TYPE ="redis"
SESSION_USE_SIGNER = True #让cookie中的session_id被加密签名处理
SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST,port=REDIS_PORT)
PERMANENT_SESSION_LIFETIME = 864000
app = Flask(__name__)
# 从类中读取配置
app.config.from_object(Config)
# 将session保存到redis
Session(app)
@app.route('/')
def index():
# 获取session中的数据, 进行判断
name = session.get('name')
if name:
return "欢迎回来, %s" % name # 已登录
else:
return "首页" # 未登录
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'GET': # GET 展示页面
# 会读取出静态文件的内容包装为响应对象, 并且根据文件类型自动设置content-type
return app.send_static_file('login.html')
else: # POST 获取提交的表单数据, 进行登录认证
username = request.form.get('username')
password = request.form.get('password')
if username == 'zs' and password == '123':
# 开启session的有效机制 默认为31天有效
session.permanent = True
# 记录用户的身份信息 使用session状态保持
# session也是类字典对象 也可以像字典一样存取数据
session["name"] = 'zs'
# 删除session数据
# session.pop('name')
return "登录成功"
else:
return "登录失败"
if __name__ == '__main__':
app.run(debug=True)
session
最新推荐文章于 2024-10-24 06:00:00 发布
21万+

被折叠的 条评论
为什么被折叠?



