zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    codechef Dynamic GCD [树链剖分 gcd]
    bzoj 4546: codechef XRQRS [可持久化Trie]
    bzoj 4835: 遗忘之树 [树形DP]
    bzoj 4033: [HAOI2015]树上染色 [树形DP]
    bzoj 4591: [Shoi2015]超能粒子炮·改 [lucas定理]
    3167: [Heoi2013]Sao [树形DP]
    bzoj 3812: 主旋律 [容斥原理 状压DP]
    有标号的二分图计数 [生成函数 多项式]
    有标号DAG计数 [容斥原理 子集反演 组合数学 fft]
    BZOJ 3028: 食物 [生成函数 隔板法 | 广义二项式定理]
  • 原文地址:https://www.cnblogs.com/shaozheng/p/12934509.html
Copyright © 2011-2022 走看看