1. 第一步写好函数,然后生成数据库session
  2. python manage.py makemigrations
  3. python manage.py migrate
  4.  
  5. session原理:
  6. Session
  7.  
  8. 基于COokie做用户验证时:
  9. 不建议添加敏感信息;
  10. 优点:服务器压力减小
  11.  
  12. Cookie是保存在用户浏览器端的键值对
  13. Session是保存在服务器端的键值对 依赖cookie 即随机字符串
  14.  
  15. session = {
  16. 随机字符串1:{
  17. 'is_login': True,
  18. 'user':'''
  19. 'nid':
  20. ...
  21. }
  22. 随机字符串2:{
  23. 'is_login':True,
  24. 'user':'''
  25. 'nid':
  26. ...
  27. }
  28. }
  29.  
  30. a.Session原理
  31. b.CookieSession对比
  32. c.Session配置(缺少cache)
  33. d.实例 实现两周的自动登录
  34. -request.session.set_expiry(*)
  35. -SESSION_SAVE_EVERY_REQUEST = True
  36.  
  37. PS: cookie中不设置超时时间, 则表示关闭浏览器自动清除
  38.  
  39. request.session['k1']
  40. request.session.get('k1',none)
  41.  
  42. request.session['k1'] =
  43. request.session.setdefault('k1', )
  44.  
  45. request.session.clear() 注销时用
  46. del request.session['k1']
  47.  
  48. requeset.session.keys()
  49. requeset.session.values()
  50.  
  51. 用户session的随机字符串
  52. request.session.session_key 获取当前人的随机字符串 一般用不着
  53.  
  54. 将所有session失效日期小于当前日期的数据删除
  55. request.session.clear_expired()
  56.  
  57. 检测用户session的随机字符串在数据库中是否存在
  58. request.session.exists("session_key") 基本不用
  59.  
  60. 默认session的超时时间是两周
  61. request.session.set_expiry(value)
  62. *如果value是个整数, session会在些秒数后失效
  63. *如果value是个datatimetimedelta session就会在这个时间后失效
  64. *如果value0 用户关闭浏览器session就会失效
  65.  
  66. settings上设置这句
  67. SESSION_SAVE_EVERY_REQUEST = True 表示页面刷新 超时时间也跟着刷新
  68.  
  69. 原理 session依赖cookie
  70. 随机字符串
  71. 对服务器中的session操作
  72. request.session.get() #获取值
  73. request.session[x] = x 设置值
  74.  
  75. request.session.clear() 注销时
  76.  
  77. -配置文件中设置默认操作:
  78. SESSION_COOKIE_AGE =
  79. SESSION_SAVE_EVERY_REQUEST = True
  80.  
  81. SESSION保存在哪里! 默认在数据库
  82. 引擎的配置
  83. SESSION_ENGINE = 'django.contrib.sessions.backends.db'默认数据库#保存在数据库中 当中的是可以换!!
  84. 可以选择放在缓存,文件,数据库,加密cookie, 缓存加数据库
  85.  
  86. 如果缓存:
  87. SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
  88. SESSION_CACHE_ALIAS = 'default' #名字
  89.  
  90. 默认CACHES中没有redis引擎 django默认不支持redis 只有memerch
  91.  
  92. def login(request):
  93. if request.method == "GET":
  94. return render(request,'login.html')
  95. elif request.method == 'POST':
  96. user = request.POST.get('user')
  97. pwd = request.POST.get('pwd')
  98. if user == 'root' and pwd =='':
  99. #生成随机字符串
  100. #写到用户浏览器cookie
  101. #保存到session中
  102. #在随机字符串对应的字典中设置相关内容
  103. request.session['username'] =user #这句话将上面四句话解决
  104. request.session['is_login'] = True
  105. request.session.set_expiry()
  106. return redirect('/index')
  107. else:
  108. return render(request,'login.html')
  109.  
  110. def index(request):
  111. #获取当前用户的随机字符串
  112. #根据随机字符串获取对应的信息
  113. if request.session['is_login']:
  114. return HttpResponse(request.session['username'])
  115. else:
  116. 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. flex 通过htmlservices链接moss的rest(rest 的get post方式)

    一:flex debug(调试)--trace() --moss导入 flex学习:1.flex出现不能使用trace调试语句的问题,控制台无信息输出.这个问题不须要改动安装文件的參量. 仅仅须要下载 ...

  2. 敏捷自己主动化单元測试 (从前台 JavaScript 至后台 Java)

    此份材料的内容适用于前台 JavaScript 与后台 Java 的单元測试◦ 希望, 能协助开发者可在最短的时间内, 开展单元測试的工作◦ 附件: 敏捷自己主动化单元測试 例子代码: QUnit 例 ...

  3. 【LeetCode-面试算法经典-Java实现】【168-Excel Sheet Column Title(Excell列标题)】

    [168-Excel Sheet Column Title(Excell列标题)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given a positive in ...

  4. android选择图片或拍照图片上传到server(包含上传參数)

    在9ria论坛看到的.还没測试,先Mark与大家分享一下. 近期要搞一个项目,须要上传相冊和拍照的图片.不负所望,最终完毕了! 只是须要说明一下,事实上网上非常多教程拍照的图片.都是缩略图不是非常清晰 ...

  5. Handler.post与View.post的区别

    Android的线程分UI线程与非UI线程两类.而Handler是非UI线程向UI线程传递消息的桥梁. 除了非常常用sendMessage之外,Handler也提供了post(Runnable...) ...

  6. P3369 【模板】普通平衡树(Treap/SBT)(pb_ds版)

    题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(若有多个相同的数,因输出最小的排名) 查询 ...

  7. JavaScript学习——使用JS完成省市二级联动

    1.我们希望在注册页面中添加一个字段(籍贯),当用户选择一个具体的省份,在后面的下拉列表中动态加载该省份下所有的城市.显示的效果如下: 2.步骤分析: 第一步:确定事件(onchange)并为其绑定一 ...

  8. Java数据库连接——jdbc-odbc桥连接方式及汉字乱码问题

    jdbc-odbc桥连接方式操作数据库SU(Course),其中Course属性有Cno,Cname,Cpno,Ccredit. 步骤: 1.配置数据源 控制面板下搜索管理工具->ODBC数据源 ...

  9. hiho1079 - 数据结构 线段树(入门题,离散化)

    题目链接 描述 小Hi和小Ho在回国之后,重新过起了朝7晚5的学生生活,当然了,他们还是在一直学习着各种算法~ 这天小Hi和小Ho所在的学校举办社团文化节,各大社团都在宣传栏上贴起了海报,但是贴来贴去 ...

  10. [CTSC1999]家园 分层图网络流_并查集

    Code: #include<cstdio> #include<vector> #include<algorithm> #include<queue> ...