• 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

  • 相关阅读:
    2016.5.11_经典试题-回文算法【ABAP】
    shell基础知识
    python笔记2
    python笔记1
    vmware rdm
    网页中图片显示方向与实际图片方向不一致
    vue 弹性布局 实现长图垂直居上,短图垂直居中
    IE10 解决input file 同一文件不触发onchange事件
    04. pt-deadlock-logger
    03. pt-config-diff
  • 原文地址:https://www.cnblogs.com/shaozheng/p/12934509.html
Copyright © 2020-2023  润新知