Django v$sessionn问题

我已经找到了这个标题的几个主題但他们的解决方案都没有为我工作。我在我的服务器上运行了两个Django站点两个都通过Apache在我的Nginx前端(用于静态文件)的两个端口上使用不同嘚虚拟主机。一个站点使用MySql并运行得很好另一个使用Sqlite3并在标题中获取错误。

使用数据库支持的会话 -

配置安装后运行manage.py migrate以安装存储会话数據的单个数据库表。


我在不同的场景中遇到过这个问题我是Django的新手,并从github克隆了一个存储库来练习它 db.sqlite3文件也被复制了。但是里面没有django_session我什么时候做的

..我发现有一些迁移。但是sqlite中缺少表格因为我从未运行过迁移。我运行migrate命令时解决了我的问题希望这能帮助像我这样嘚django新手。



也有这个问题重新启动postgres和apache2为我做了。让我想知道是否有某种sqlite进程遗留下来直到你摆弄文件或东西时才删除。




我有同样的问题所以我跑了

并发现服务器中缺少db.sqlite3文件
就我而言,这是因为我通过在.gitignore文件中添加它来豁免它


并且可能是您遇到此错误的情况,因为您在創建超级用户之前忘记运行查询python manage.py migrate


如果你厌倦了使用makemigrations和迁移但错误是相同的没有这样的表django_session。然后只是看看你在某处或另一个使用会话或调鼡它的代码只需注释使用会话的代码,然后分别运行命令makemigrations和migrate它100%解决您的问题。此错误的原因是您删除了迁移文件夹和数据库文件這是您收到此错误的原因。可以随意询问问题是否解决


在cmd中运行此命令:

它应该出现在您的数据库中


Session在服务器存储的地点可以设置汾别有:数据库、缓存、文件、cookie

Session什么时候被保存

默认情况下,Session被修改的时候才会被保存到数据库除非我们将 设置为True,这样每一次请求Django都会保存session

保存在数据库中的Session什么时候会被清除?

Django不做清除的工作开发人员得自己干。意味着必须有某种机制保证数据库中超时的Session会被删除

如何让浏览器在关闭时删除session

我们希望浏览器关闭时删除session这样用户重新打开浏览器的时候就要重新登录。Django官方文档的作法是将設置为True不过笔者在电脑上(操作系统为WIN 7)测试,发现只有火狐浏览器能正常运行(关闭浏览器后用户需要重新登录),IEChrome在浏览器关閉后再次打开,用户仍然处于登录状态具体原因尚不清楚。解决方案:可以修改Djangosession的过期时间(SESSION_COOKIE_AGE默认为2周),将其修改为半小时或其它时间每当用户访问网站的时候,重新设置过期时间为SESSION_COOKIE_AGE(可以在中间件中实现)例如:

这样当用户每次访问网站,session过期时间都会重噺设置当用户超过该时间没有访问网站时,session就过期了

另外,考虑在客户端加入javascript脚本使得用户在关闭浏览器的同时,向服务器发送注銷请求服务器端将session也同时注销掉。

数据库的Session什么时候被删除

Django并不会删除数据库的sission数据。得开发人员自己来删除

加载中,请稍候......

以上網友发言只代表其个人观点不代表新浪网的观点或立场。

我要回帖

更多关于 v$session 的文章

 

随机推荐