2013-07-11 34 views
0

我想在我的Django網站中計數。我使用全局變量testc來計數(我知道這導致了問題,但我不知道如何在沒有全局變量的情況下進行計數)。因此,如果兩個瀏覽器在同一時間打開網站(threadtest.html),它們都會增加相同的testc(當然)。有沒有一種方法可以在每個瀏覽器會話中單獨計數?我需要使用多線程嗎?謝謝。如何在Django網站中爲不同的瀏覽器會話使用不同的全局變量

這是我的觀點:

testc=0 
def threadtest(request): 
    global testc 
    if request.method == 'POST': 
     testc=testc+1 
     print testc 
    return render(request,'threadtest.html',{'count':testc,}) 

這裏是模板: base.html文件

{% load staticfiles %} 
{% load static %} 
{% load extra_tags %} 
<html> 
<head> 
<title>{% block title %}{% endblock %}</title> 


{%block myscripts %}{% endblock %} 

</head> 
<body> 
<div id="content"> 
    {% block content %}{% endblock %} 
</div> 

</body> 
</html> 

threadtest.html

{% extends 'base.html' %} 
<html> 
<head><title></title></head> 

<body> 

{% block content %} 
<h1> Current count is </h1> 
<h1> {{count}} </h1> 
<form action="/threadtest/" method="post">{% csrf_token %} 
<input type= "submit" name = "button" value = "addit" /> 
</form> 
{% endblock %} 
</body> 
</html> 
+0

後來我通過使用「會話變量」得到這個。像request.session('myvar')= xxxx。 – jgmao

回答

1

你可以從這些信息:

request.META['HTTP_USER_AGENT'] 

一些輸出將是例如:

Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.70 Safari/537.36 

也許你可以找到有用的這個snippet

+0

謝謝你的回答。我想要做的是爲每個瀏覽器會話分配一個全局變量。這是你的建議嗎? – jgmao

+0

是的,你可以看一下代碼片段,並根據'check_browser'函數的結果創建會話變量 –

相關問題