Django:学习笔记(5)——会话

配置中间件

  Django中使用会话,需要配置一个中间件。

  

配置会话引擎

  默认情况下,Django在数据库中存储sessions(使用了django.contrib.sessions.models.Sesson模型)。但是你可以选择将其存储在更快的文件系统或缓存中。

  我们在这里,使用数据库存储会话数据。配置好中间件后,运行manage.py migrate后会在数据库中创建一张session数据存储表。

  

使用会话

在Views中使用会话

  一旦SessionMiddleware被激活,每一个HttpRequest对象,都有一个session属性,它的基类是SessionBase,我们可以调用它的相关方法来操作会话数据。

  

不在view中使用会话

  如果我们还想在其他地方操作会话,可以直接导入SessionStore,如果使用了基于数据库的会话引擎,直接从对应的包下导入即可,如果配置了其他引擎,可以import_module导入设置文件中配置的会话引擎。 

   

实例:仅允许提交一次

  我们设置当用户提交评论后,想再次提交就会收到拒绝信息。

def post_comment(request, new_comment):
if request.session.get('has_commented', False):
return HttpResponse("You've already commented.")
c = comments.Comment(comment=new_comment)
c.save()
request.session['has_commented'] = True
return HttpResponse('Thanks for your comment!')

  这个代码写的真的好,在没有设置has_commented为true的时候,默认返回false,直到用户提交成功后,再次访问,此时得到true,返回You've already commented!

Django:学习笔记(5)——会话的更多相关文章

  1. Django学习笔记(9)—— 开发用户注册与登录系统

    一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...

  2. Django学习笔记(13)——Django的用户认证(Auth)组件,视图层和QuerySet API

    用户认证组件的学习 用户认证是通过取表单数据根数据库对应表存储的值做比对,比对成功就返回一个页面,不成功就重定向到登录页面.我们自己写的话当然也是可以的,只不过多写了几个视图,冗余代码多,当然我们也可 ...

  3. Django 学习笔记之四 QuerySet常用方法

    QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命 ...

  4. Django 学习笔记之三 数据库输入数据

    假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...

  5. Django学习笔记(五)—— 表单

    疯狂的暑假学习之  Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path         ...

  6. Django学习笔记(三)—— 型号 model

    疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...

  7. Django 学习笔记(二)

    Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...

  8. Django 学习笔记(五)模板标签

    关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.IF标签 Hello World/vi ...

  9. Django 学习笔记(四)模板变量

    关于Django模板变量官方网址:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.传入普通变量 在hello/Hell ...

随机推荐

  1. 开源 java CMS - FreeCMS2.2 建站向导

    项目地址:http://www.freeteam.cn/ 建站向导 为了方便用户创建网站,系统提供了建站向导功能. 从左側管理菜单点击建站向导进入. 第一步:创建网站 能够直接设置所属的父网站.填写相 ...

  2. Python爬虫(六)

    源码: import requests import re from my_mysql import MysqlConnect # 获取问答信息 def get_contents(page,heade ...

  3. string类(一、string基础)

    string基础 1.字符串常量具备字符串池特性. 字符串常量在创建前,首先在字符串池中查找是否存在相同文本. 如果存在,则直接返回该对象引用:若不存在,则开辟空间存储. 目的:提高内存利用率. 2. ...

  4. c#后台读写Cookie

    public class BaseCookies { #region Cookies public static void SetCookieValue(string key, string valu ...

  5. H5学习之--前端和PHP后端的简单交互

    最近在学习前端的东西,H5+CSS3+JS,又分别学习了原生JS和jQuery库,还有Bootstrap框架,因为我是做ios开发的,所以先熟悉WebApp相关的开发知识,其他的学习资料,网上有很多的 ...

  6. 收集各种在线HTTP网站载入速度(响应时间)站长测试(检测)工具

    收集各种在线HTTP网站载入速度(响应时间)站长测试(检测)工具 名称\详情 简单功能描述 推荐星级 演示/示例 监控宝 从中国多地对你提交的URL进行载入速度(响应时间)测试 ★★★★★   17C ...

  7. centos中调整tmpfs分区的大小

    tmpfs是Linux/Unix系统上的一种基于内存的文件系统.tmpfs可以使用系统的内存或swap分区来存储文件.由此可见,tmpfs主要存储暂存的文件. tmpfs默认的大小是RM的一半,假如你 ...

  8. Gson简要使用笔记(转载)

    经过比较,gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需 ...

  9. LeetCode-Water and Jug Problem

    You are given two jugs with capacities x and y litres. There is an infinite amount of water supply a ...

  10. JAR包中的MANIFEST.MF文件详解以及编写规范

    参考百度百科的解释如下: http://baike.baidu.com/item/MANIFEST.MF MANIFEST.MF:这个 manifest 文件定义了与扩展和包相关的数据.单词“mani ...