django global variable
You could declare num outside one of the functions.
num = 0
GLOBAL_Entry = None
def start(request):
global num, GLOBAL_Entry
num = 5
GLOBAL_Entry = Entry.objects.filter(id = 3)
return HttpResponse("num= %d" %num) # returns 5 no problem....
def other(request):
global num
num = num + 1
// do something with GLOBAL_Entry
return HttpResponse("num= %d" %num)
You only need to use the global keyword if you are assigning to a variable, which is why you don't need global GLOBAL_Entry
in the second function.
You can open settings.py and add your variable and value. In your source code, just add these line
from django.conf import settings
print settings.mysetting_here
Now you can access your variable globally for all project. Try this, it works for me.
Use sessions. This is exactly what they are designed for.
def foo(request):
num = request.session.get('num')
if num is None:
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
If the session has expired, or num
did not exist in the session (was not set) then request.session.get('num')
will return None
. If you want to give num
a default value, then you can do this request.session.get('num',5)
- now if num
wasn't set in the session, it will default to 5
. Of course when you do that, you don't need the if num is None
check.