IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Flask学习_07_Cookie 与 Session -> 正文阅读

[Python知识库]Flask学习_07_Cookie 与 Session

Cookie 与 Session

Cookie

设置 set_cookie 实质:在响应头中增加了一个set_cookie响应头。
读取 request.cookies.get 。请求体里有了一个cookies。
删除 response.delete_cookie() 实设置过期时间max_age=1970年(响应报文中没有delete相关信息)

Set-Cookie: name=; Expires=Thu, 01-Jan-1970 00:00:00 GMT; Max-Age=0; Path=/
设置
from flask import Flask, make_response

app = Flask(__name__)

@app.route('/cookie')
def set_cookie():
    resp = make_response('set cookie ok')
    resp.set_cookie('username', 'itcast')
    return resp
设置有效期
@app.route('/cookie')
def set_cookie():
    response = make_response('hello world')
    response.set_cookie('username', 'itheima', max_age=3600)
    return response
读取
from flask import request

@app.route('/get_cookie')
def get_cookie():
    resp = request.cookies.get('username')
    return resp
删除
from flask import request

@app.route('/delete_cookie')
def delete_cookie():
    response = make_response('hello world')
    response.delete_cookie('username')
    return response

Session

falsk提供了session对象
设置:session[name]=value
读取:session.get('name)

**note:**直接设置session是会报错的!!!

需要先设置SECRET_KEY

方法一:
class DefaultConfig(object):
    SECRET_KEY = 'fih9fh9eh9gh2'

app.config.from_object(DefaultConfig)
方法二:
或者直接设置
app.secret_key='xihwidfw9efw'
设置
from flask import session

@app.route('/set_session')
def set_session():
    session['username'] = 'itcast'
    return 'set session ok'
读取
@app.route('/get_session')
def get_session():
    username = session.get('username')
    return 'get session username {}'.format(username)

拓展

session存在哪?

1.一般服务的session数据是在cookie处存储session的id号,然后通过id号到后端中查询session的具体数据。
为了安全,一般session数据都是存储在后端的数据库中

2.Flask session的默认存储方式是将整个数据加密后存储在cookie中,无后端存储

? django默认把session存在本地localsession,或者数据库表里。

3.将session的id存储在url中,例如:url?sid=sessionid,这是session id针对于无法存储cookie情况的做法。

为什么离不开secret_key?

因为flask浏览器session将session保存在浏览器中,别人可随意获取、修改,很不安全。为了增加安全性使用secret_key签名

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:45:38  更:2022-03-21 20:48:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:42:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码