第一步写好函数,然后生成数据库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. 多线程003 - 再谈CyclicBarrier

      java.util.concurrent.CyclicBarrier也是JDK 1.5提供的一个同步辅助类(为什么用也呢?參见再谈CountDownLatch).它同意一组线程互相等待,直到到达某 ...

  2. 【动态树问题】LCT学习笔记

    我居然还不会LCT QAQ真是太弱了 必须学LCT QAQ ------------------线割分是我www------------ LinkCut-Tree是基于Splay(由于Splay能够非 ...

  3. 细述 Java垃圾回收机制→Types of Java Garbage Collectors

    细述 Java垃圾回收机制→Types of Java Garbage Collectors 转自:https://segmentfault.com/a/1190000006214497 本文非原创, ...

  4. C++如何调用C#编写的 DLL

    由于C#编绎出来的DLL不是计算机所能直接识别的二进制指令码,需要CLS进行再解释,说到这,我想有些朋友应该知道C#项目需要引用C++编写的DLL时,可以直接引用DLLMPORT来实现调用,而反向的话 ...

  5. 洛谷P1067 多项式输出(模拟)

    题目描述 一元 n 次多项式可用如下的表达式表示: 其中,aixi称为 i 次项,ai 称为 i 次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式: 1. 多项式中 ...

  6. String Comparison(C#)

    When comparing programmatic strings, you should always use StringComparison.Ordinal or StringCompari ...

  7. 来,我们来聊聊怎么学好3dMax三维建模这款软件

    效果图公司近年来的发展体现了流行3D技术,而3D技术的应用也越来越广泛,3D为电脑效果图制作的主力.室内效果是设计师进行设计后所达到的效果,除了通常采用的方法外,还应该积极地找寻一种适合的教学方法,培 ...

  8. css实现步骤条

    实现效果 html <ul class="steps"> <li class="active">申请完成</li> < ...

  9. git远程仓库变更

    查看自己的远程仓库 git remote -v 远程仓库变更 git remote remove origin //移出现有的远程仓库的地址 git remote add origin http:// ...

  10. Linux下重启mysql数据库的方法

    原文地址:Linux下重启mysql数据库的方法作者:于士博的视频教程 方法一: 命令: [root@localhost /]# /etc/init.d/mysql   start|stop|rest ...