在javascript中更新Django会话变量?
Posted
技术标签:
【中文标题】在javascript中更新Django会话变量?【英文标题】:Update Django session variable in javascript? 【发布时间】:2011-06-03 12:47:17 【问题描述】:我想在 javascript 事件(实际上是 jQuery)之后更新 Django 会话变量。
我需要通过 POST 请求执行此操作吗?
或者 Javascript 和 Django 可以以某种巧妙的方式共享会话变量,在这种情况下,我可以直接从 jQuery 更新会话变量吗?我对细节有点模糊。
谢谢!
【问题讨论】:
【参考方案1】:您可以通过 Ajax 做到这一点。你需要一个简单的 Django 视图来更新会话变量,jQuery 将调用它:
def update_session(request):
if not request.is_ajax() or not request.method=='POST':
return HttpResponseNotAllowed(['POST'])
request.session['mykey'] = 'myvalue'
return HttpResponse('ok')
和 JS:
$.post('/update_session/', function(data)
alert(data);
);
【讨论】:
您的 Django 视图中有一个拼写错误,在分配值后尾随]
。此外,您应该返回 HttpResponseNotAllowed(['POST',])
而不是 Http404()
希望你不介意我的修复。还将and not
替换为or not
。
怎么样,我们能不能让它更通用一点,你可以设置任何p
从请求参数中获取mykey和myvalue安全吗?以上是关于在javascript中更新Django会话变量?的主要内容,如果未能解决你的问题,请参考以下文章