第一步写好函数,然后生成数据库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的更多相关文章

  1. Django - Cookie、Session、自定义分页和Django分页器

    2. 今日内容 https://www.cnblogs.com/liwenzhou/p/8343243.html 1. Cookie和Session 1. Cookie 服务端: 1. 生成字符串 2 ...

  2. webpy使用笔记(二) session/sessionid的使用

    webpy使用笔记(二) session的使用 webpy使用系列之session的使用,虽然工作中使用的是django,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶 ...

  3. python 全栈开发,Day76(Django组件-cookie,session)

    昨日内容回顾 1 json 轻量级的数据交换格式 在python 序列化方法:json.dumps() 反序列化方法:json.loads() 在JS中: 序列化方法:JSON.stringfy() ...

  4. Django组件-cookie,session

    昨日内容回顾: json 轻量级的数据交换格式 在python 序列化方法:json.dumps() 反序列化方法:json.loads() 在JS中: 序列化方法:JSON.stringfy() 反 ...

  5. SpringMVC:学习笔记(12)——ThreadLocal实现会话共享

    SpringMVC:学习笔记(12)——ThreadLocal实现会话共享 ThreadLocal ThreadLocal,被称为线程局部变量.在并发编程的情况下,使用ThreadLocal创建的变量 ...

  6. MZY项目笔记:session歧路

    from my typora MZY项目笔记:session歧路 文章目录 MZY项目笔记:session歧路 那该怎么办? 1. 手动加上cookie的header. 2.自己模拟一个Session ...

  7. Spring源码学习笔记12——总结篇,IOC,Bean的生命周期,三大扩展点

    Spring源码学习笔记12--总结篇,IOC,Bean的生命周期,三大扩展点 参考了Spring 官网文档 https://docs.spring.io/spring-framework/docs/ ...

  8. 机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第12章 - 使用FP-growth算法来高效发现频繁项集. 基本概念 FP-growt ...

  9. Ext.Net学习笔记12:Ext.Net GridPanel Filter用法

    Ext.Net学习笔记12:Ext.Net GridPanel Filter用法 Ext.Net GridPanel的用法在上一篇中已经介绍过,这篇笔记讲介绍Filter的用法. Filter是用来过 ...

随机推荐

  1. Android多媒体学习六:利用Service实现背景音乐的播放

    Android同意我们使用Service组件来完毕后台任务.这些任务的同意不会影响到用户其它的交互. 1.Activity类 [java] view plaincopy package demo.ca ...

  2. iOS Autolayout情况下,ViewController嵌套时,childViewController的Frame异常问题

    近期项目中,使用Storyboard.AutoLayout开发,某个ViewController中嵌套了多个子ViewController,结果在将其加入到父ViewController时,出现坐标异 ...

  3. http协议无状态中的 "状态" 到底指的是什么?!(转载)

    转载自:https://www.cnblogs.com/bellkosmos/p/5237146.html   引子: 最近在好好了解http,发现对介绍http的第一句话[http协议是无状态的,无 ...

  4. Web前端错题模糊题记录

    title: Web前端错题模糊题记录 toc: true date: 2018-09-20 10:04:36 categories: Web tags: HTML CSS JavaScript HT ...

  5. App.config:配置系统未能初始化的异常

    如上图所示:App.config文件是这样配置的,在后台代码”ISchedulerFactory scheduler = new StdSchedulerFactory();“中抛出了异常 经网上查资 ...

  6. Pharmaceutical的同学们都看过来,关于补码运算的复习相关内容

    虽然是全英文的课程,这次总结内容不用英文了. 一般在计算机原理中,对两个操作数进行运算会使用C作为进位的标志位,而V作为溢出的标志位. 一般我们学完计算机原理,都知道正数的原码反码补码都一样,而问题都 ...

  7. 你不知道的JavaScript(二)数组

    作为一种线性数据结构,几乎每一种编程语言都支持数组类型.和c++.java这些强类型的语言相比,JavaScript数组有些不同,它可以存放任意类型的值.上节中有提到过JS中任意类型的值都可以赋值给任 ...

  8. OpenGL编程(七)3D模型的深度(z轴)检测

    下图是我们要修改后的效果图: 一.深度检测 1.模型Z轴显示有问题: 上一次试验中,如果认真留意,会发现一个问题.当控制锥体在左右或上下旋转时,你会发现锥体看起来是在+-180度之间来回摆动,而不是3 ...

  9. Caffe学习--Net分析

    Caffe_Net 1.基本数据 vector<shared_ptr<Layer<Dtype> > > layers_; // 记录每一层的layer参数 vect ...

  10. 快速傅里叶变换(Fast-Fourier Transform,FFT)

    数学定义: (详细参考:https://www.baidu.com/link?url=oYAuG2o-pia_U3DlF5n_MJZyE5YKfaVRUHTTDbM1FwM_kDTjGCxKpw_Pb ...