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知识库 -> Django学习记录15 -> 正文阅读

[Python知识库]Django学习记录15

Cookies&Session

Cookies

会话:双方之间的http交互,从访问一个网站到关闭浏览器结束这次访问,称之为一次对话。

http协议时无状态的,导致会话状态难以保持。

Cookies&Session就是为了保持会话状态。

Cookies:保存在客户端浏览器上的存储空间,可在浏览器内开发工具查看。

cookies特点:
①Cookies在浏览器上以键值对的形式存储,ASCII字符串(不能是中文)
②存储的数据有生命周期。
③存储的数据按域存储隔离,不同的域之间无法访问。
④cookies内部的数据会在每次访问此网址时携带到服务器端,若cookies过大会影响响应速度。

cookies的使用——储存:

HttpResponse.set_cookie(key,value='***',max_age=None)

key:cookie的名字
value:cookie的值
max_age:cookie存活时间,秒为单位。
expires:具体过期时间
若maxage和expires未指定,当关闭浏览器是此数据失效。
eg:

myresponse=HttpResponse('设置cookies')
myresponse.set_cookie(key='user1',value='asdfghjkl',max_age=500)

想要修改、更新,也是使用set_cookie方法。
删除cookies:

myresponse=HttpResponse('删除cookies')
myresponse.delete_cookie(key='user1')

key不存在也不会报错,什么都不会发生。
获取cookies:

value=request.COOKIES.get('cookie名','默认值')

request.COOKIES就相当于字典,一般用get方法取值,若不存在则返回默认值。

一般用于用户登录验证。用户输入账号密码后登录,利用POST请求将账号密码提交,后端与数据库中作比较后若成功,就set_cookie,将名称写在cookies里。

Session

也是为了保持用户状态。
django获取用户信息后在服务器内生成session存储用户数据,将一个sessionID返回给浏览器,浏览器将sessionID放入cookies,在下一次提交请求时,将sessionID提交给服务器,这样比cookie更加安全。

Session配置:
1、
在INSTALLED_APPS下添加(一般自定义就已经存在):

'django.contrib.sessions'

2、
在MIDDLEWARE列表中添加(一般自定义就已经存在):

'django.contrib.sessions.middleware.SessionMiddleware'

启用session中间件。

session使用:
1、保存session的值到服务器

request.session['KEY']=VALUE

2、获取session的值

value=request.session['KEY']
value=request.session.get('KEY',默认值)

request.session[‘KEY’]也可以当作字典来用(推荐使用get方法)
3、删除session

value=request.session['KEY']

session也是有时间的,时间取决于sessionID,没有id的话session也就相当于到期。

过期时间默认为两周(与框架、版本都有关)。
session相关配置:
settiong.py中

SESSION_COOKIE_AGE

存活周期,单位为秒。

SESSION_EXPIRE_AT_BROWSER_CLOSE=True

若为True,当关闭浏览器时session失效(默认为False)

django会把session的数据放在数据库中
django_session表中。
django为单表数据,数据会越来越多,过期数据也不会自动清理。
需要手动清理数据,否则越来越多,影响响应速度!

python3 manage.py clearsessions

一般在晚上执行该命令清理数据。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-03 01:09:59  更:2022-02-03 01:11:13 
 
开发: 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/16 2:26:45-

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