zoukankan      html  css  js  c++  java
  • Flask中的cookie和session

    from flask import Flask
    app = Flask(__name__)
    

    一.cookie

    from flask import Flask, make_response, request
    @app.route('/')
    def hello():
        response = make_response('ok')    #先要创建一个response对象
        response.set_cookie('key','value')  #用set_cookie设置cookies
        cookies = request.cookies #获取所有cookies且以字典的形式的返回
        cookies_key = request.cookies['key']  #因为返回是cookies的字典对象所以我们可以用字典取值取出指定的cookie
        return response
    

    二.session

    用之前必须先设置秘钥

    app.secret_key="asdas" #值随便

    使用

    from flask import Flask, make_response, request,session
    app.config['SESSION_COOKIE_NAME']="session_key"  #这是配置网页中sessions显示的key
    @app.route('/')
    def hello():
    	session['username'] = 'xxx'  #设置
        #session本身就是个字典相当于把一个username:xxx键值对丢进去,然后Flask会把整个字典结合secret_key进行加密
        #1.生成一个随机的字符串 
        #2 往数据库存 
        #3 写入cookie返回浏览器
        sessions = session #获取所有session
        session_username =session['username'] #获取指定session
        session.pop('username')  #删除session原理和字典的删除方式一样
        return 'ok'
    

    设置cookie的参数

    key, 键
    value='', 值
    max_age=None, 超时时间 cookie需要延续的时间(以秒为单位)如果参数是 None`` ,这个cookie会延续到浏览器关闭为止
    expires=None, 超时时间(IE requires expires, so set it if hasn't been already.)
    path='/', Cookie生效的路径,/ 表示根路径,特殊的:根路径的cookie可以被任何url的页面访问,浏览器只会把cookie回传给带有该路径的页面,这样可以避免将cookie传给站点中的其他的应用。
    domain=None, Cookie生效的域名 你可用这个参数来构造一个跨站cookie。如, domain=".example.com"所构造的cookie对下面这些站点都是可读的:www.example.com 、 www2.example.com 和an.other.sub.domain.example.com 。如果该参数设置为 None ,cookie只能由设置它的站点读取
    secure=False, 浏览器将通过HTTPS来回传cookie
    httponly=False 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)
    

    这些参数全都再app.config中进行设置

            'SESSION_COOKIE_NAME':                  'session',
            'SESSION_COOKIE_DOMAIN':                None,
            'SESSION_COOKIE_PATH':                  None,
            'SESSION_COOKIE_HTTPONLY':              True,
            'SESSION_COOKIE_SECURE':                False,
            'SESSION_REFRESH_EACH_REQUEST':         True,
    

    详细可以参照:https://www.cnblogs.com/pythonywy/p/11594420.html

  • 相关阅读:
    LR--用栈实现移进--归约分析(demo)
    阿里云ECS服务器socket无法连接的问题
    select客户端模型封装——回调方式快速建立客户端
    select服务器端模型封装——回调方式快速建立服务端
    python实现的ocr接口
    汉字字典树
    linux下简易端口扫描器
    Linux下cs简单通讯(socket)
    POj 1321 棋盘问题 DFS 回溯
    HDU 1097 快速幂
  • 原文地址:https://www.cnblogs.com/pythonywy/p/11600140.html
Copyright © 2011-2022 走看看