前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flask中的cookie和session

Flask中的cookie和session

作者头像
小小咸鱼YwY
发布2020-06-19 15:59:47
4640
发布2020-06-19 15:59:47
举报
文章被收录于专栏:python-爬虫python-爬虫
代码语言:javascript
复制
from flask import Flask
app = Flask(__name__)

一.cookie

代码语言:javascript
复制
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" #值随便

使用

代码语言:javascript
复制
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的参数

代码语言:javascript
复制
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中进行设置

代码语言:javascript
复制
        '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://cloud.tencent.com/developer/article/1648178

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.cookie
  • 二.session
    • 用之前必须先设置秘钥
      • 使用
        • 设置cookie的参数
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档