可以在django中设置全局变量吗?
In views.py
我想访问另外一个 def 的变量,现在的代码如下:
def start(request):
global num
num=5
return HttpResponse("num= %d" %num) # returns 5 no problem....
def other(request):
num=num+1
return HttpResponse("num= %d" %num)
other()并没有返回6。请问该如何实现呢?
8875598
11 years, 1 month ago
Answers
首先,django的模型并不推荐使用全局变量。在你的这种情况下,你有3种基本选择:
- 数据库
- session
- cookie
我推荐使用 sessions。确切滴说,session就是用来做这活的。
def foo(request):
num = request.session.get('num')
if not num:
num = 1
request.session['num'] = num
return render(request,'foo.html')
def anotherfoo(request):
num = request.session.get('num')
# and so on, and so on
如果session过期,或者 session中并没有num,那么request.session.get('num')将返回一个None。如果你想给num一个缺省值(比如5),那么你可以使用这条语句:request.session.get('num',5)。现在,如果num没有被设置,那么将返回5。
中国人名很行
answered 11 years, 1 month ago