django 笔记12 session
- 第一步写好函数,然后生成数据库session表
- python manage.py makemigrations
- python manage.py migrate
- session原理:
- 、Session
- 基于COokie做用户验证时:
- 不建议添加敏感信息;
- 优点:服务器压力减小
- Cookie是保存在用户浏览器端的键值对
- Session是保存在服务器端的键值对 依赖cookie 即随机字符串
- session = {
- 随机字符串1:{
- 'is_login': True,
- 'user':'''
- 'nid':
- ...
- }
- 随机字符串2:{
- 'is_login':True,
- 'user':'''
- 'nid':
- ...
- }
- }
- a.Session原理
- b.Cookie和Session对比
- c.Session配置(缺少cache)
- d.实例 实现两周的自动登录
- -request.session.set_expiry(*)
- -SESSION_SAVE_EVERY_REQUEST = True
- PS: cookie中不设置超时时间, 则表示关闭浏览器自动清除
- request.session['k1']
- request.session.get('k1',none)
- request.session['k1'] =
- request.session.setdefault('k1', )
- request.session.clear() 注销时用
- del request.session['k1']
- requeset.session.keys()
- requeset.session.values()
- 用户session的随机字符串
- request.session.session_key 获取当前人的随机字符串 一般用不着
- 将所有session失效日期小于当前日期的数据删除
- request.session.clear_expired()
- 检测用户session的随机字符串在数据库中是否存在
- request.session.exists("session_key") 基本不用
- 默认session的超时时间是两周
- request.session.set_expiry(value)
- *如果value是个整数, session会在些秒数后失效
- *如果value是个datatime或timedelta session就会在这个时间后失效
- *如果value是0 用户关闭浏览器session就会失效
- 在settings上设置这句
- SESSION_SAVE_EVERY_REQUEST = True 表示页面刷新 超时时间也跟着刷新
- 原理 session依赖cookie
- 随机字符串
- 对服务器中的session操作
- request.session.get() #获取值
- request.session[x] = x 设置值
- request.session.clear() 注销时
- -配置文件中设置默认操作:
- SESSION_COOKIE_AGE =
- SESSION_SAVE_EVERY_REQUEST = True
- SESSION保存在哪里! 默认在数据库
- 引擎的配置
- SESSION_ENGINE = 'django.contrib.sessions.backends.db'默认数据库#保存在数据库中 当中的是可以换!!
- 可以选择放在缓存,文件,数据库,加密cookie, 缓存加数据库
- 如果缓存:
- SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
- SESSION_CACHE_ALIAS = 'default' #名字
- 默认CACHES中没有redis引擎 django默认不支持redis 只有memerch
- def login(request):
- if request.method == "GET":
- return render(request,'login.html')
- elif request.method == 'POST':
- user = request.POST.get('user')
- pwd = request.POST.get('pwd')
- if user == 'root' and pwd =='':
- #生成随机字符串
- #写到用户浏览器cookie
- #保存到session中
- #在随机字符串对应的字典中设置相关内容
- request.session['username'] =user #这句话将上面四句话解决
- request.session['is_login'] = True
- request.session.set_expiry()
- return redirect('/index')
- else:
- return render(request,'login.html')
- def index(request):
- #获取当前用户的随机字符串
- #根据随机字符串获取对应的信息
- if request.session['is_login']:
- return HttpResponse(request.session['username'])
- else:
- return HttpResponse('no ok')
django 笔记12 session的更多相关文章
- Django - Cookie、Session、自定义分页和Django分页器
2. 今日内容 https://www.cnblogs.com/liwenzhou/p/8343243.html 1. Cookie和Session 1. Cookie 服务端: 1. 生成字符串 2 ...
- webpy使用笔记(二) session/sessionid的使用
webpy使用笔记(二) session的使用 webpy使用系列之session的使用,虽然工作中使用的是django,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶 ...
- python 全栈开发,Day76(Django组件-cookie,session)
昨日内容回顾 1 json 轻量级的数据交换格式 在python 序列化方法:json.dumps() 反序列化方法:json.loads() 在JS中: 序列化方法:JSON.stringfy() ...
- Django组件-cookie,session
昨日内容回顾: json 轻量级的数据交换格式 在python 序列化方法:json.dumps() 反序列化方法:json.loads() 在JS中: 序列化方法:JSON.stringfy() 反 ...
- SpringMVC:学习笔记(12)——ThreadLocal实现会话共享
SpringMVC:学习笔记(12)——ThreadLocal实现会话共享 ThreadLocal ThreadLocal,被称为线程局部变量.在并发编程的情况下,使用ThreadLocal创建的变量 ...
- MZY项目笔记:session歧路
from my typora MZY项目笔记:session歧路 文章目录 MZY项目笔记:session歧路 那该怎么办? 1. 手动加上cookie的header. 2.自己模拟一个Session ...
- Spring源码学习笔记12——总结篇,IOC,Bean的生命周期,三大扩展点
Spring源码学习笔记12--总结篇,IOC,Bean的生命周期,三大扩展点 参考了Spring 官网文档 https://docs.spring.io/spring-framework/docs/ ...
- 机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第12章 - 使用FP-growth算法来高效发现频繁项集. 基本概念 FP-growt ...
- Ext.Net学习笔记12:Ext.Net GridPanel Filter用法
Ext.Net学习笔记12:Ext.Net GridPanel Filter用法 Ext.Net GridPanel的用法在上一篇中已经介绍过,这篇笔记讲介绍Filter的用法. Filter是用来过 ...
随机推荐
- flex 通过htmlservices链接moss的rest(rest 的get post方式)
一:flex debug(调试)--trace() --moss导入 flex学习:1.flex出现不能使用trace调试语句的问题,控制台无信息输出.这个问题不须要改动安装文件的參量. 仅仅须要下载 ...
- 敏捷自己主动化单元測试 (从前台 JavaScript 至后台 Java)
此份材料的内容适用于前台 JavaScript 与后台 Java 的单元測试◦ 希望, 能协助开发者可在最短的时间内, 开展单元測试的工作◦ 附件: 敏捷自己主动化单元測试 例子代码: QUnit 例 ...
- 【LeetCode-面试算法经典-Java实现】【168-Excel Sheet Column Title(Excell列标题)】
[168-Excel Sheet Column Title(Excell列标题)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given a positive in ...
- android选择图片或拍照图片上传到server(包含上传參数)
在9ria论坛看到的.还没測试,先Mark与大家分享一下. 近期要搞一个项目,须要上传相冊和拍照的图片.不负所望,最终完毕了! 只是须要说明一下,事实上网上非常多教程拍照的图片.都是缩略图不是非常清晰 ...
- Handler.post与View.post的区别
Android的线程分UI线程与非UI线程两类.而Handler是非UI线程向UI线程传递消息的桥梁. 除了非常常用sendMessage之外,Handler也提供了post(Runnable...) ...
- P3369 【模板】普通平衡树(Treap/SBT)(pb_ds版)
题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(若有多个相同的数,因输出最小的排名) 查询 ...
- JavaScript学习——使用JS完成省市二级联动
1.我们希望在注册页面中添加一个字段(籍贯),当用户选择一个具体的省份,在后面的下拉列表中动态加载该省份下所有的城市.显示的效果如下: 2.步骤分析: 第一步:确定事件(onchange)并为其绑定一 ...
- Java数据库连接——jdbc-odbc桥连接方式及汉字乱码问题
jdbc-odbc桥连接方式操作数据库SU(Course),其中Course属性有Cno,Cname,Cpno,Ccredit. 步骤: 1.配置数据源 控制面板下搜索管理工具->ODBC数据源 ...
- hiho1079 - 数据结构 线段树(入门题,离散化)
题目链接 描述 小Hi和小Ho在回国之后,重新过起了朝7晚5的学生生活,当然了,他们还是在一直学习着各种算法~ 这天小Hi和小Ho所在的学校举办社团文化节,各大社团都在宣传栏上贴起了海报,但是贴来贴去 ...
- [CTSC1999]家园 分层图网络流_并查集
Code: #include<cstdio> #include<vector> #include<algorithm> #include<queue> ...