第一步写好函数,然后生成数据库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. U盘无法格式化的恢复

    昨天装Ubuntu的系统可能把U盘搞崩溃了.然后今早起来U盘无法识别,格式化也不行,用Windows的磁盘管理工具格式化说是:Windows无法格式化U盘. 曾经没遇到这样的情况,所以百度了一下,试了 ...

  2. Android DatePickerDialog样式不一致的问题

    三星和华为的平板上,DatePickerDialog的显示样式不一致.三星的仅仅显示月日年选择框,而华为的平板上另外还显示了日历表.代码同样. 可能是系统控件做了部分改动,后来你发现是能够设置的: D ...

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

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

  4. 号外:Spark 1.3.0公布了,快来一起飞!

    Spark 1.3.0 Release Note Spark 1.3.0在上周五正式公布.真是千呼万唤始出来.本次公布最大的惊喜就是DataFrame.另外一个值得关注的是Spark SQL从Alph ...

  5. [SICP] 求值规则

    在Java语言学习中,通常不太关注求值规则. (2+4*6)*(3+5+7)这样的组合式的求值规则.通常归结为优先级问题: if.for等的求值规则通常归结为语义. 函数式编程语言的Scheme,将这 ...

  6. node12---mongodb

    一.传统数据库技术回顾 数据库就是存储数据的,那么存储数据就用txt就行了啊,为什么要有数据库? 理由之1: 数据库有行.列的概念,数据有关系,数据不是散的. 老牌数据库,比如MySQL.SQL Se ...

  7. linux 应用软件集合

    史上最全面的Linux应用软件大集合 | 博客水木 1. 生产力 Linux 桌面的便利贴:Stickynotes sudo add-apt-repository ppa:umang/indicato ...

  8. 14.MongoDBUtils工具类

    1. public class DbUtils { public static MongoCollection<Document> getMongoCollection(String lo ...

  9. POJ 2190 模拟

    按照题意模拟就好- 注意"X"只能出现在最后一位... // by SiriusRen #include <cstdio> using namespace std; c ...

  10. ios上有时候提交按钮点击两次才可以取消输入框软键盘

    ios上有时候提交按钮点击两次才可以取消输入框软键盘,点击第一次软键盘消失,点击第二次输入框页面消失,这样用户体验不好.我的做法是用 touchstart 代替click来处理 反应快,但是有时候会出 ...