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


  • 相关阅读:
    黑板客爬虫闯关 代码
    新浪云SAE搭建python环境 问题拾遗
    关于python中的字符串编码理解
    linux环境中使用转义字符使命令行字符颜色高亮
    python中list作为全局变量无需global声明的原因
    获取youku视频下载链接(wireshark抓包分析)
    改变linux默认配色方案(dircolors和dircolors-solarized使用)
    限流常规设计和实例
    连接池-Mybatis源码
    Transaction-Mybatis源码
  • 原文地址:https://www.cnblogs.com/djflask/p/10460177.html
Copyright © 2011-2022 走看看