如果我们有两个django应用site1和site2同时跑在同一个server的不同端口,同时我们在同一个浏览器的不同tab登录。那么这时就出出现这种情况,当我们登录site2时就会将site1上登录的用户踢下来。

为什么会出现这种情况呢?这跟django的session框架有关,这里做一个简单介绍:当我们第一次访问一个django网站时,django会生成一个session来保存当前会话的一些信息。同时会生成一个哈希值session_key并生成一个cookie发送给客户端,这个cookie的名字根据setting中SESSION_COOKIE_NAME设置,默认为“sessionid”(划重点)。这样下次请示session_key就会跟随cookie发送到server。server根据session_key查找对应session对象,获取当前会话的信息,当然也包括登录信息。

所以上面的情况真相只有一个(柯南推眼镜脸):

  1. 我们登录site1是得到一个叫sessionid的cookie,里面存储session_key1。
  2. 当我们登录site2时会更新那个叫sessionid的cookie,现在它的值为session_key2(浏览器存储cookies是基于ip而不是端口,所以会更新同一个名字的cookie)。
  3. 所以现在用新的session_key访问site1时就会拿不到原来的登录信息,需要我们重新登录。

那么怎么解决呢,了解上面机制后,只需要在setting中设置SESSION_COOKIE_NAME即可。比如可以在site2中设置SESSION_COOKIE_NAME = ‘site2’,site1中用默认。当然也可同时设置site1和site2。

这里是老瘦家的儿子,如需转载请声明,我替老瘦感谢你

使同一个server上不同port的django应用可在同一个浏览器上打开的更多相关文章

  1. 如何在苹果电脑上创建一个html格式文件,并在浏览器正确打开

    之前一直使用windows系统的电脑,创建文件很简单,改格式也非常的简单.但换了苹果电脑,如何创建一个HTML文件?却把我给整蒙了. 首先,为什么mac上不能直接新建文本文件? 因为mac一都是以应用 ...

  2. tomcat服务器用Servlet类查找磁盘文件上的Json信息,如果匹配则在浏览器上显示出该条内容的全部信息

    package com.swift; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOE ...

  3. 其它浏览器上是可以正常请求的,ie浏览器上确出现奇怪的http请求400错误

    做项目的时候,遇到一个小的问题.一个location.href="请求的url"在其它浏览器上是可以正常请求的.但是在ie浏览器上确出现奇怪的http请求400错误,我们先来对于h ...

  4. 如何上传网站程序(文件浏览器上传网页、FileZilla上传网站程序)

    问题场景: 网页制作完成后,程序需上传至虚拟主机. 注意事项: Windows系统的主机请将全部网页文件直接上传到FTP根目录,即 / . Linux系统的主机请将全部网页文件直接上传到 /htdoc ...

  5. Ubuntu上通过nginx部署Django笔记

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式.今天在Ubuntu上使用Nginx部署Django服务,虽然不是第一次搞这个了,但是发现还是跳进了好多坑,g ...

  6. Django:学习笔记(8)——文件上传

    Django:学习笔记(8)——文件上传 文件上传前端处理 本模块使用到的前端Ajax库为Axio,其地址为GitHub官网. 关于文件上传 上传文件就是把客户端的文件发送给服务器端. 在常见情况(不 ...

  7. django 12天(跨域,文件上传,下载,cookie,session)

    django 12天(跨域,文件上传,下载) 跨域 什么是跨域 1.协议不同 2.端口不同 3.主机不同 如何解决跨域 1.安装django-cors-headers模块 2.在settings.py ...

  8. mac上安装port

    今天和大家分享下 在mac os x 上安装port 本人在  OS X El Capitan 版本的操作系统上进行安装并测试. --------------------------------- 第 ...

  9. Django实现注册页面_头像上传

    Django实现注册页面_头像上传 Django实现注册页面_头像上传 1.urls.py 配置路由 from django.conf.urls import url from django.cont ...

随机推荐

  1. 了解 Azure VM 的系统重启

    有时 Azure 虚拟机 (VM) 可能重启,即使没有明显原因,也没有证据表明用户发起重启操作. 本文列出了可导致 VM 重启的操作和事件,并针对如何避免意外重启问题或减少该问题影响提供见解. 配置 ...

  2. 【Oracle】查看被锁的表和解锁

    --以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$proce ...

  3. rabbitmq集群方案

    RabbitMQ的集群方案有以下几种: 1.普通的集群 exchange,buindling再所有的节点上都会保存一份,但是queue只会存储在其中的一个节点上,但是所有的节点都会存储一份queue的 ...

  4. 连续支付的年金 (continuously payable annuity)

    一.含义 假设连续不断地付款,但每年的付款总量仍然为1元. 二. 连续支付年金是年支付次数m趋于无穷大时的年金,故 连续支付年金与基本年金的关系: 连续支付,每年的支付总量为1,支付期限为无穷: 积累 ...

  5. PHP根据图片制作缩略图

    php中制作缩略图的方法也很简单,是用imagecopyresampled方法根据源图制作一个小一点的图片,来看代码check_image_addthumbs.php <?php //修改图片效 ...

  6. 布隆过滤器(Bloom Filter)简要介绍

    一种节省空间的概率数据结构 布隆过滤器可以理解为一个不怎么精确的 set 结构,当你使用它的 contains 方法判断某个对象是否存在时,它可能会误判.但是布隆过滤器也不是特别不精确,只要参数设置的 ...

  7. python内置模块(三)

    hashlib模块 通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示). Python2中使用hashlib: import hashlib m = hashlib ...

  8. prority_queue自定义类型使用

    struct Tower{ Tower(int h, int p){ height = h; pos = p; } bool operator < (Tower &t) { if (he ...

  9. Mysql 用户权限管理--从 xxx command denied to user xxx

    今天遇到一个mysql 权限的问题,即标题所述  xxx command denied to user xxx,一般mysql 这种报错,基本都属于当前用户没有进行该操作的权限,需要 root 用户授 ...

  10. robotframwork接口测试(三)—HttpLibrary.HTTP安装

    1. 安装: 1)可以用命令:pip install robotframework-httplibrary(或pip install  --upgrade robotframework-httplib ...