关于python+django的又一坑,请python班的同学进来看

事情是这样的。

在使用django1.6+的时候,默认会吧session存放在数据库django_session表里。

如果要把session放在内存中,就应该在settings.py 中配置

SESSION_ENGINE = "django.contrib.sessions.backends.cache"

使用的时候:

新增:request.session["userName"] = "Tom"

查询:name = request.session["userName"]

删除:del request.session["userName"]

好,那更复杂一点的数据该如何存储呢:比如一个对象Student。

按照其他语言的习惯,比如java和C#,按理说应该是:

stu = Student(name="Tom",age = 12)

新增:request.session["user"] = stu

查询:stu = request.session["user"]

删除:del request.session["user"]

存放对象的时候,如果session是存放在内存中,那么是没有问题的。但是一旦存放在数据库中就不行了。

为何?

因为存放在数据库中的东西,是需要能够进行json序列化的。

Student是不能被序列化json的。需要把Student转换为字典,没错,是字典。

{“name”:“Tom”,“age”:12}

这样才能存放在数据库session中。

另外,如果stu是一个对象。那么执行下列语句:

print(“1111111”)

request.session["user"] = stu

print(“2222222”)

输出是

111111

222222

这说明,session的新增操作是用了多线程,并不会阻止222222的输出,但是在http请求的时候,会报stu不可以被json序列化的错误。坑点,要注意。

交流专业、技术问题等加Python交流群:338985564


原文地址:http://www.maiziedu.com/group/article/8361/?yy=tb0408

时间: 2024-10-14 00:49:18

关于python+django的又一坑,请python班的同学进来看的相关文章

Python Django开发遇到的坑(版本不匹配)

这个问题 进入django 后台, 添加,修改都不可以,只有删除可以,那么百分之百是这个问题 对照一下,是你的django 版本低了还是 python版本高了,对照的话就没问题了 这个坑,弄了两天啊!!!,帮助你了请点个赞啊 原文地址:https://www.cnblogs.com/whatarey/p/11421176.html

【爬坑】Python 3.6 在 Socket 编程时出现类型错误 TypeError: a bytes-like object is required, not 'str'

1. 问题描述 Python 3.6 在 Socket 编程时出现错误如下 Traceback (most recent call last): File "F:/share/IdeaProjects/test/mypython/test/test10_tcpclient.py", line 17, in <module> sock.send(str) TypeError: a bytes-like object is required, not 'str' Process

微信开发python+django两个月的成功经历,django是个好框架!

时间:大三 上学期没有用微信内置浏览器而纯对话开发,坑了自己好一下. 下学期选错bottle框架,以为轻量好,谁知开发中什么都自己来很痛苦. 选对了框架django,终于在大三最后的个把月里写出了里程碑式的现在这个微信端,自己都感动到,作为我大三一年web开发的终结吧. 亮点1:自带后台管理 亮点2:后台权限管理 亮点3:微信回复规则设置去代码化,图形界面. 亮点4:一平台多网店 技巧:微信规则不匹配时不能回复吗?不是,规则包含空字符总能匹配任意文本,请看下面的微信规则截图. 后台 选择botl

nginx + gunicorn + django 2.0 踩坑

部署踩坑 部署踩坑提前准备服务器端准备安装nginx使用uwsgi部署使用gunicorn配置配置nginx配置django中的路径url 提前准备 在本地能够 python(3) manage.py runserver 服务器端准备 安装nginx 为了防止python的某些包没有安装 请先 sudo apt-get install python-dev 然后 sudo apt-get install nginx 使用uwsgi部署 求求你了 别用uwsgi 玩了4个小时 试了不下15种配置方

python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器

python3.5 manage.py runserver python Django教程 之模板渲染.循环.条件判断.常用的标签.过滤器 一.Django模板渲染模板 注: 本节代码是基于 Django 1.8,但 Django 1.4 - Djagno 1.9 操作流程也是一样的. 后文给出示例代码可以在 Django 1.4.x 到 Django 1.9.x 上运行. 不过还是强调一点,一点要动手敲代码!不要偷懒哦,动手才能学到真东西. 1. 创建一个 zqxt_tmpl 项目,和一个 名

Python+django部署(一)

之所以 写这篇文章的原因在于django环境的确轻松搭建,之前Ubuntu上安装了,的确很轻松,但是后期我才知道随便做个环境出来很容易到了后面很麻烦,污 染了系统里的python版本,导致系统python环境异常崩溃,系统重装的Ubuntu的亲们你们是有感触吧,所以好多人采用virtualenv 吧,但是期初用virtualenv的时候的确不需要系统的依赖包了,但是后来折腾来折腾去还是很麻烦,最后我不得已我又各种删,所以最后看到了一个哥们 的文章,我才觉得找到了自己自己想要的东西了 所以重 头再

Python+Django+SAE系列教程11-----request/pose/get/表单

表单request,post,get 首先我们来看看Request对象,在这个对象中包含了一些有用的信息,学过B/S开发的人来说这并不陌生,我们来看看在Django中是如何实现的: 属性/方法 说明 举例 request.path 除域名以外的请求路径,以正斜杠开头 "/hello/" request.get_host() 主机名(比如,通常所说的域名) "127.0.0.1:8000" or"www.example.com" request.g

python Django之Ajax

python Django之Ajax AJAX,Asynchronous JavaScript and XML (异步的JavaScript和XML),一种创建交互式网页应用的网页开发技术方案. 异步的JavaScript:使用 [JavaScript语言] 以及 相关[浏览器提供类库] 的功能向服务端发送请求,当服务端处理完请求之后,[自动执行某个JavaScript的回调函数].PS:以上请求和响应的整个过程是[偷偷]进行的,页面上无任何感知. XMLXML是一种标记语言,是Ajax在和后台

基于Python+Django的Kubernetes集群管理平台

原文出自[听云技术博客]:http://blog.tingyun.com/web/article/detail/1345 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调度管理等方面都有其难以言喻的优势,但是随着业务的不断增长,以及服务的多元化,容器的体量与管理的难度也随之增长. 浅述Kubernetes集群日常管理维护中的一些痛点: 1.较为庞大的集群规模及容器数量维护管理