问题标签 [django-sessions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3647 浏览

python - django 缓存会话

我有两个问题:

1)我想知道是否使用

存储会话真的可以提高网站的性能吗?假设有大约 25,000 个同时用户。每个用户进行许多数据库更改(例如浏览器游戏)。差异甚至很明显吗?

2)再次使用缓存会话(没有数据库):如何检查给定用户是否已登录(不允许同一帐户多次登录)?

0 投票
2 回答
721 浏览

django - 我可以防止 Django 用户登录会话过期吗?

我正在使用 Django 1.2.5 的网站上工作。它使用 Django 身份验证后端来登录和注销用户。这反过来又使用 Django 会话框架来设置 cookie。似乎 Django 会话后端设置的 cookie 会在 2 周后过期。我收到了用户的投诉,他们正在退出他们的帐户并且必须重新登录,我怀疑这是由于 cookie 在 2 周后过期的事实。我必须SESSION_COOKIE_AGE1 年(即 31556926 秒),但我不知道这是否是解决这个问题的最佳方法——我不确定它是否会产生无意的副作用。

有没有办法让用户无限期地登录(即,让他们保持登录状态,直到他们手动注销)?我还没有找到设置,但任何解决方案(例如,中间件等)都是可以接受的。

0 投票
1 回答
1003 浏览

django - 使用 Django 上下文处理器或中间件检查模板上的 cookie?

我的 Django 应用程序有 Post 对象。每个 Post 都有一个 IntegerField,每当单击某个链接时,该字段就会递增。单击该链接时,我设置了一个 cookie 以指示它已被单击并阻止用户再次单击它。因此 cookie 看起来像这样:

is_clicked=[1,2,3,4,5]

其中整数 1,2,3,4,5 是 Post.id。

我应该使用上下文处理器、中间件还是其他东西来做到这一点?

谢谢!

0 投票
3 回答
16722 浏览

django - 测试会话变量

我遇到了 Django request.session;我知道如何设置和测试它的特定值。

我检查的地方

但是,现在我必须首先检查是否设置了会话变量?我的意思是如何检查集合中是否存在值request.session['name']

有没有办法检查它?

0 投票
1 回答
506 浏览

django - Django:为什么 _cached_user 是请求的实例属性,而 LazyUser 是请求的类属性?

在 Django 中:

如您所见_cached_user,是实例的属性,request而 LazyUser() 是请求类的属性:

为什么有区别?LazyUser基本上只是检查是否_cached_user存在,如果不存在,那么它会session为用户查询后端。在那种情况下,两者不应该LazyUser_cached_user实例的属性request吗?

0 投票
4 回答
3002 浏览

django - Django:有什么方法可以避免在每个请求上查询 request.user?

对于我的网站,几乎每个页面都有一个标题栏显示“欢迎,ABC”,其中“ABC”是用户名。这意味着request.user将为每个请求调用一次,从而导致数据库一次又一次地命中。

但是一旦用户登录,我应该能够将他的user实例存储在他的 cookie 中并对其进行加密。这样我就可以避免重复访问数据库,而只是request.user从 cookie 中检索。

你将如何修改 Django 来做到这一点?是否有任何 Django 插件可以满足我的需要?

谢谢

0 投票
1 回答
4049 浏览

django - Django 检索会话用户 ID

我正在使用登录中间件来创建用户登录表单。

用户成功登录后,从视图中检索用户 ID 的最佳方法是什么?

创建了一个中间件.py:

0 投票
1 回答
624 浏览

django - Django:SessionMiddleware 在什么时候检查数据库以查看会话是否已经存在?

我试图了解会话在 Django 中是如何工作的。查看源代码SessionMiddleware

如果我理解正确,对于每个请求 SessionMiddleware.process_request()都会sessionid从 cookie 中获取 ,然后SessionStore使用它创建一个新实例 sessionid

当我查看 and 的来源 __init__()时:SessionStoreSessionBase

所以基本上SessionStore只是创建一个新实例而不尝试在数据库中查找以查看具有指定的会话是否sessionid已经存在。但这不应该是会话的全部意义吗——对于每个请求,Django 都需要在会话数据库中查找以查看会话是否已经存在?我猜这个数据库查找发生在某个地方,但我找不到它。

你能告诉我在哪里可以找到吗?还是我误解了会话在 Django 中的工作方式?

谢谢

0 投票
3 回答
1125 浏览

python - 如何为匿名用户创建类似 Django 的按钮?

我正在使用 Django,我的网站没有用户配置文件,所以都是匿名的。我想实现一个“喜欢”系统。如何限制用户只喜欢一次。谢谢。

0 投票
1 回答
782 浏览

python - Django-Secretballot 不起作用?

我正在使用允许匿名投票的 Django-secretballot应用程序。首先我们注册一个秘密投票模型,然后有一个函数 add_vote() 接受 2 个参数。“令牌”和投票值(+1 或 -1)。

来自文档

添加投票:

接受令牌和投票(+1 或 -1)并添加或更新对所述令牌的投票的函数(可以通过将 add_vote_name 参数传递给 enable_voting_on 来重命名)

我应该传递什么作为“令牌”?我在views.py中使用了这个

然而它不起作用。我的意思是,如果我尝试从不同的机器投票,只会计算第一票。但是当其他人投票支持相同的提要时,它不会增加。

任何使用过这个应用程序或通过检查文档找出我做错了什么的人。请帮忙。