flask 会话技术

%%

flask:
默认支持中文(传入中文COOKIE,会自动编码)

%%

蓝图:
安装: pip install flask-blueprint

代表含义:
    对程序的美好规划,视图函数
    
注意:
    试图不要重复,在试图前加 blue_name !!,表示那个蓝图内的试图 !!

%%

blue = Blueprint('first_blue=',name)

@blue.route('/')
def index():
return 'hello world'

app = Flask(name)
app.register_blueprint(blueprint=blue)
manager = Manager(app=ap

%%

会话技术:
不同请求,但是后面的请求需要前面请求返回的数据

web --> http (request --> response
              
cookie:
    客服端 (存储,服务端不存储)
    
              网站 --》 ip + 域名 (请求携带搜有的cookie)
              
              cookie 不能跨域名 + 浏览器     --》 跨域名 (frame)
              
session:
       服务端 存储
        依赖cookie 存在

%% raw

cookie:

home

欢迎回来: {{username}}


登录
退出

%%

login
用户名:

%%

from flask_blueprint import Blueprint
from flask import Flask,render_template,request,Response,url_for,redirect

blue = Blueprint('second_blue',name)

@blue.route('/home/')
def homt():
username = request.cookies.get('user')
return render_template('home.html',username=username)

@blue.route('/login/',methods=['GET','POST'])
def login():
if request.method == 'GET':
return render_template('login.html')
elif request.method == 'POST':
username = request.form.get('username')
print(username)

    resp = Response(response='%s 登陆成功' %username)
    return resp

@blue.route('/logout/')
def logout():
resp = redirect(url_for('second_blue.home'))
resp.delete_cookie('user')

return resp

%%

cookie --改 --> session :

@blue.route('/home/')
def homt():
username = session.get('user') # 存储
return render_template('home.html',username=username)

@blue.route('/login/',methods=['GET','POST'])
def login():
if request.method == 'GET':
return render_template('login.html')
elif request.method == 'POST':
username = request.form.get('username')
print(username)

    session['user'] = username     #  生成

%%

添加salt :

app.config['SECRET_KEY'] = '123445345436547ewt'    # 类似为 salt

数据存储在内存中:
    pip install flask-session
    
    # 获取 session
    
        app.config['SESSION_TYPE'] = 'redis'
        Session(app=app)

    查看:
        redis-cli
        keys *      (获取所有key)
        get key  --> value  (要编码 ,时效默认 为 14天)

%%

执行:
执行程序:
python manage.py runserver -r -d

猜你喜欢

转载自www.cnblogs.com/shaozheng/p/12934509.html