Flask学习——cookie操作


Cookie是客户端的会话技术 cookie本身由浏览器保存,通过Response将cookie写到浏览器上,下一次访问,浏览器会根据不同的规则携带cookie过来 特点: - 客户端会话技术,浏览器的会话技术 - 数据全都是存储在客户端中 - 存储使用的键值对结构进行的存储 - 特性 - 支持过期时间 - 默认会自动携带本网站的所有cookie - 根据域名进行cookie存储 - 不能跨域名 - 不能跨浏览器 - Cookie是通过服务器创建的Response来创建的 设置cookie:
    
response.set_cookie(key,value[,max_age=None,exprise=None)]
 response.set_cookie(key,value[,max_age=None,exprise=None)] max_age: 整数,指定cookie过期时间 expries: 整数,指定过期时间,可以指定一个具体日期时间 max_age和expries两个选一个指定 获取cookie: request.cookies.get(key) 删除cookie response.delete_cookie(key)

例子:用cookie实现登陆注销

登录页前端:
<h3>首页</h3>
<a href="{{ url_for('app.login') }}">登录</a>

# url_for('蓝图名.函数名')
 
<form action="{{ url_for('app.handler') }}" methon="GET">
    用户名:<input type="text" name="username" ><br>
    密码:<input type="password" name="password" ><br>
    <input type="submit" value="登录"><br>
</form>

端接收,并用response设置cookie返回给浏览器:

@blue.route('/login_handler')
def login_handler():
    if request.method == 'GET':
        username = request.args.get('username')
        password = request.args.get('password')

        if username == 'lili' and password == 123456:
            response =  redirect(url_for('app.index'))
      # 这里设置一下cookie response.set_cookie(
'user',username,max_age=7*24*3600) return response else: return '登录失败'

 登录后,cookie检测:

 

@blue.route('/index/')
def index():
    #渲染不到可以给个空值.
    username = request.cookie.get('user','')
    #渲染到前端
    return render_template('index.html', username=username)

 

前端接收参数并渲染:

 

 
<h3>首页</h3>
{% if username %}
    <p>{{ username }}:欢迎您<a href="">注销</a></p>
{% else %}
    <a href="{{ url_for('app.login') }}">登录</a>
{% endif %}
 

注销相关蓝图,cookie删除:

@blue.route('/logout/')
def logout():
    response = redirect(url_for('app.index'))
    #通过response删除cookie里的'user'
    response.delete_cookie('user')

    return response

 




免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM